当前位置: 首页 > 知识库问答 >
问题:

二叉树的最大深度是否应排除根?

张腾
2023-03-14

到目前为止,我在这里看到了树的最大深度的两种不同实现,

>

  • 第一个,最大深度===级别-1:https://www.geeksforgeeks.org/write-a-c-program-to-find-the-maximum-depth-or-height-of-a-tree/

    • 这意味着,对于基本情况,if!节点:返回-1
    • 所以三级树的最大深度为2

    第二个,最大深度===级别:https://leetcode.com/problems/maximum-depth-of-binary-tree/

    • 这意味着,对于基本情况,if!节点:返回0

    javascript中的实现如下所示:

    function maxDepth(node){
       if (!node) return -1;
       return Math.max(maxDepth(node.left),maxDepth(node.right))+1;
    }
    

    哪一个是正确的?我错过了什么?

    另外,一棵树的最大深度等于一棵树的高度,对吗?虽然计算方式不同,但深度是从节点到根,高度是从节点到叶节点。

  • 共有1个答案

    斜浩穰
    2023-03-14

    这些术语在不同的地方有不同的含义。因此,无论在何处使用,都应予以澄清。

    对于根,标高=1,深度=0,高度=1。

    级别=深度1。

    资料来源:http://typeocaml.com/2014/11/26/height-depth-and-level-of-a-tree/

    维基百科:

    节点的高度是从该节点到叶片的最长向下路径的长度。根的高度就是树的高度。节点的深度是到其根的路径长度(即,其根路径)。在操纵各种自平衡树,特别是AVL树时,通常需要这样做。根节点的深度为零,叶节点的高度为零,只有一个节点(因此根和叶)的树的深度和高度为零。传统上,空树(如果允许的话,没有节点的树)具有高度−1.

    关于树的深度和高度之间的区别的另一个有趣的讨论?。

     类似资料:
    • 本文向大家介绍Python3实现二叉树的最大深度,包括了Python3实现二叉树的最大深度的使用技巧和注意事项,需要的朋友参考一下 问题提出: 给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 解决思路:递归法求解。从根结点向下遍历,每遍历到子节点depth+1。 代码实现( ̄▽ ̄): 时间和空间消耗: 以上就是本文的

    • 我正在读二叉树。在练习编码问题时,我遇到了一些解决方案,其中要求找到二叉树的最小深度。现在根据我的理解,深度是从根到节点的边数(叶节点的情况下为叶节点/二叉树) 二叉树{1,2}的最小深度是多少 根据我的解决方案,应该是1。

    • NowCoder 题目描述 从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 解题思路 // java public int TreeDepth(TreeNode root) { return root == null ? 0 : 1 + Math.max(TreeDepth(root.left), TreeDepth(root.right));

    • 我正在处理LeetCode问题111。二叉树的最小深度: 给定一棵二叉树,求其最小深度。 最小深度是从根节点到最近的叶节点的最短路径上的节点数。 注意:叶是没有子节点的节点。 我使用了广度优先的算法,并试图改变它以使其与问题保持一致。但是函数返回的是。 有人能解释为什么会这样吗?

    • 计算二叉树最大的宽度 根据带虚结点的先序序列建立二叉树,计算该二叉树最大的宽度(二叉树的最大宽度是指二叉树所有层中结点个数的最大值)并输出。 输入格式: 测试数据有多组,处理到文件尾。每组测试数据在一行中输入一个字符串(不含空格且长度不超过80),表示二叉树的先序遍历序列,其中字符*表示虚结点(对应的子树为空)。 输出格式: 对于每组测试,输出二叉树的最大宽度。输出格式为:“maxWidth: m

    • 这是我的代码: 首先,我从一个列表中做一个二叉查找树,并检查它是否是一个二叉查找树。 给定列表的第一个元素是根节点,后续元素成为子节点。到叶节点。 例如,调用 的结果为: 结果是二叉搜索树,因为左子节点小于父节点,右子节点大于父节点。因此,调用<code>bst_child</code>的结果是<code>True</code>。 然后我添加了寻找二叉查找树深度的代码。通过对第一个列表排序,我制作