这是算法理论中的一个简单问题。 它们之间的区别是,在一种情况下,你计算节点的数量,在另一种情况下,计算根节点和具体节点之间最短路径上的边的数量。 哪个是哪个?
当前回答
我知道这很奇怪,但是Leetcode也根据路径上的节点数量来定义深度。因此,在这种情况下,深度应该从1开始(总是计算根),而不是0。以防有人和我一样有同样的困惑。
其他回答
节点的“深度”(或等效的“层数”)是根节点“路径”上的边数
节点的“高度”是指从该节点到叶节点的最长路径上的边数。
我知道这很奇怪,但是Leetcode也根据路径上的节点数量来定义深度。因此,在这种情况下,深度应该从1开始(总是计算根),而不是0。以防有人和我一样有同样的困惑。
深度:节点上面有多少条边,这就是节点的深度 高度:节点下面有多少条边,即节点的高度
Node1 // depth = 0 and height = 2 => root node
|
/ \
Node2 Node3 //depth = 1 and height = 1
| |
Node4 Node5 //depth = 2 and height = 0 => leaf node```
树的高度和深度是相等的……
但是节点的高度和深度是不相等的,因为…
高度是通过从给定节点遍历到可能最深的叶来计算的。
深度是从根到给定节点.....的遍历计算的
我了解到深度和高度是节点的属性:
节点深度是指从该节点到树的根节点的边数。根节点的深度为0。 节点的高度是指从该节点到叶节点的最长路径上的边数。叶节点的高度为0。
树的属性:
树的高度是它的根节点的高度,或者等价地,是它最深节点的深度。 树的直径(或宽度)是任意两个叶节点之间的最长路径上的节点数。下面的树直径为6个节点。
推荐文章
- set()是如何实现的?
- 找出质数最快的算法是什么?
- 圆线段碰撞检测算法?
- 求有向图中的所有循环
- JavaScript -从当前日期开始获取一周的第一天
- .Net数据结构:ArrayList, List, HashTable, Dictionary, SortedList, SortedDictionary—速度,内存,以及何时使用每个?
- 如何比较两种颜色的相似/不同
- 为什么std::map被实现为红黑树?
- 缓冲区是什么意思?
- 有效的方法应用多个过滤器的熊猫数据框架或系列
- 实现嵌套字典的最佳方法是什么?
- BASE术语解释
- 哪些是遗传算法/遗传规划解决方案的好例子?
- JavaBean和POJO之间的区别是什么?
- 如何在O(n)中找到长度为n的无序数组中的第k大元素?