c****7 发帖数: 13 | | n****r 发帖数: 120 | 2 public int maxDepth(TreeNode root) {
if (root == null) return 0;
if (root.left == null && root.right == null)
return 1;
return 1 + Math.max(maxDepth(root.left), maxDepth(root.right));
}
public int maxDepth(TreeNode root) {
Stack stack = new Stack();
TreeNode x = root, prev = null;
int maxDepth = 0;
while (x != null || !stack.isEmpty()){
while (x != null){
stack.push(x);
x = x.left;
}
maxDepth = Math.max(maxDepth, stack.size());
x = stack.peek();
if (x.right == null || prev == x.right){
stack.pop();
prev = x;
x = null;
}else
x = x.right;
}
return maxDepth;
} | a********n 发帖数: 1287 | 3 如果树根是null,应该返回-1吧。
如果数只有一个节点,则返回0。
树的高度是树枝的数量。
【在 n****r 的大作中提到】 : public int maxDepth(TreeNode root) { : if (root == null) return 0; : if (root.left == null && root.right == null) : return 1; : return 1 + Math.max(maxDepth(root.left), maxDepth(root.right)); : : } : public int maxDepth(TreeNode root) { : Stack stack = new Stack(); : TreeNode x = root, prev = null;
|
|