给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
思路:给每层一个level标记当前层数,并使用全局int值max记录当前最大深度。
遍历整棵树的所有节点,若到达最后一层后比较当前level与目前的最深层,取较大值。
代码:public static int max;
public static int maxDepth(TreeNode2 root) {
if(root==null)return 0;
max = 1;
fun(root,0);
return max;
}
public static void fun(TreeNode2 node,int level){
if(node==null){
max = Math.max(max,level);
return;
}
fun(node.left, level+1);
fun(node.right,level+1);
}
题解中很棒的思路:
public int maxDepth(TreeNode root) {
if(root == null) {
return 0;
} else {
int left = maxDepth(root.left);
int right = maxDepth(root.right);
return Math.max(left, right) + 1;
}
}



