java:
原题:最大深度
class Solution {
public int maxDepth(TreeNode root) {
if (root == null)
return 0;
int left = maxDepth(root.left);
int right = maxDepth(root.right);
return Math.max(left, right) + 1;
}
}
最小深度
class Solution {
private int res = 0;
public int minDepth(TreeNode root) {
if (root == null)
return 0;
int left = minDepth(root.left);
int right = minDepth(root.right);
if (left == 0)//注!!最小容易把0返回去,而返回0有可能不是叶子节点
return right + 1;
if (right == 0)
return left + 1;
return Math.min(left, right) + 1;
}
}