Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
题意:求一个二叉树的最大深度。
思路:
这道题用分治的思路非常容易解决,在根节点不是null的情况下,一棵树的最大高度等于左右子树的最大高度加1.
用深度搜索的方法,也可以找出一条最长的路径,即最大高度。
用宽度搜索的方法,也能找出最深一层,得到最大高度。
下面是分治解法的代码:
public int maxDepth(TreeNode root) {
if (root == null) {
return 0;
}
int left = maxDepth(root.left);
int right = maxDepth(root.right);
return 1 + Math.max(left, right);
}