题目:输入一颗二叉树的根节点,求该树的深度。提示,从根节点到叶片节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。
代码:
public static int treeDepth(BinaryTreeNode tree) {
if (root == null) {
return 0;
}
int left = treeDepth(root.left);
int right = treeDepth(root.right);
return left > right ? (left + 1) : (right + 1);
}
解释:
递归treeDepth()方法
的目的是获取子树的最大深度,left
代表左子树的最大深度,而right
代表右子树的最大深度,判断left和right的目的是得出子树最大深度,然后加1
代表加上当前树自身的深度1
如果子树为null
,说明当前树该侧没有子树,既然该侧没有子树,那么该侧的深度就是0
啊,因此root==null
的时候返回0