二叉树的最大高度

时间:2017-01-13 07:15:07

标签: java binary-tree

您好我遇到了一个代码来查找二叉树的最大高度。 在此代码中,为什么return语句中有+1

public int maxDepth(TreeNode root) {
        if (root == null) {
          return 0;
        }
        return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
    }

2 个答案:

答案 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;

正如您的基本案例所示,空树的高度为零,您可以建立更高的树木。使用感应高度。