二叉树的最大高度

Maximum Height of a Binary Tree

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

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

如果没有,结果将始终为 0。

二叉树的最大高度是 child 最大高度(即 Math.max(maxDepth(root.left), maxDepth(root.right)) 部分)的最大高度 + 1 作为树的根。

考虑一棵由单个根节点组成的树。然后下面的 return 语句将 return 1,这是我们期望的:

return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
return Math.max(0, 0) + 1;
return 1;

如您的基本案例所示,一棵空树的高度为零,您可以使用归纳法构建更高的树的高度。