树的递归。要注意对左右子树中有null的处理。
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public int minDepth(TreeNode root) {
// Start typing your Java solution below
// DO NOT write main() function
if (root == null) return 0;
boolean left = root.left != null;
boolean right = root.right != null;
if(left && right) {
int minLeft = minDepth(root.left) + 1;
int minRight = minDepth(root.right) + 1;
if (minLeft > minRight) return minRight;
else return minLeft;
}
else if (left) {
return minDepth(root.left) + 1;
}
else if (right) {
return minDepth(root.right) + 1;
}
else {
return 1;
}
}
}