题目:
题解:
代码:
/** * code104 */
public class code104 {
public static int maxDepth(TreeNode root) {
// 递归退出条件,到叶子节点
if (root == null) {
return 0;
}
// 计算左子树最大深度
int leftMaxDepth = maxDepth(root.left);
// 计算右子树最大深度
int rightMaxDepth = maxDepth(root.right);
// 以某个节点为根节点的数的最大深度为Max
// Max = max(leftMaxDepth,rightMaxDepth)+1
return Math.max(leftMaxDepth, rightMaxDepth) + 1;
// 以上可合并为:
// return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
}
public static void main(String[] args) {
System.out.println("***************************************");
Integer nums[] = { 3, 9, 20, null, null, 15, 7 };
TreeNode tree = ConstructTree.constructTree(nums);
TreeOperation.show(tree);
System.out.println("***************************************");
int count = maxDepth(tree);
System.out.println("该二叉树的最大深度为: " + count);
System.out.println("***************************************");
}
}