您好我遇到了一个代码来查找二叉树的最大高度。
在此代码中,为什么return语句中有+1
?
public int maxDepth(TreeNode root) {
if (root == null) {
return 0;
}
return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
}
答案 0 :(得分:2)
如果没有,结果将始终为0.
二叉树的最大高度是具有较大最大高度的孩子的最大高度(即Math.max(maxDepth(root.left), maxDepth(root.right))
部分)+ 1的树根。
答案 1 :(得分:1)
考虑由单个根节点组成的树。然后,以下return语句将返回1,这是我们所期望的:
return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
return Math.max(0, 0) + 1;
return 1;
正如您的基本案例所示,空树的高度为零,您可以建立更高的树木。使用感应高度。