【问题标题】:Max Depth of binary tree with size one大小为一的二叉树的最大深度
【发布时间】:2017-05-06 02:10:07
【问题描述】:

我正在尝试找到二叉树的最大深度并使用递归方法。它看起来像这样:

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

现在,如果只有一个节点(根),它将返回 1。但是该节点的深度不是 0,高度为 1,因为它是根吗?还是树的最大深度与单个节点不同?

【问题讨论】:

    标签: recursion binary-tree depth


    【解决方案1】:

    深度不是树的度量,而是树的节点。

    在您的情况下,节点的 maxDepth 听起来像是该节点的高度。

    • 节点的深度是从根到节点的边数。
    • 节点的高度是从节点到最深叶子的边数。
    • 树的高度就是根的高度。

    考虑这张图片:

    【讨论】:

    • 所以没有最大深度之类的东西?
    • 据我了解,节点的深度只受其父节点及以上节点的影响,不受其以下节点的影响。所以我认为,你的例子中最大深度的概念,实际上只是一个节点的高度,与它的深度无关(在图中考虑,相同高度的节点可以有不同的深度,反之亦然) .
    猜你喜欢
    • 2016-01-24
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 2022-11-15
    • 2021-11-22
    • 1970-01-01
    • 2021-07-30
    相关资源
    最近更新 更多