这是算法理论中的一个简单问题。 它们之间的区别是,在一种情况下,你计算节点的数量,在另一种情况下,计算根节点和具体节点之间最短路径上的边的数量。 哪个是哪个?
当前回答
树的整体深度等于树的高度,树的级别也一样,但如果对于特定的节点高度不等于深度,因为深度的定义表明从根节点到该节点的最长路径,对于高度,它是从该节点到叶节点。
总体树,D=H=L 但D可能不等于H。
其他回答
节点深度是指从树的根节点到该节点的路径中存在的边数。
节点的高度是指连接该节点到叶节点的最长路径中存在的边数。
Daniel A.A. pelsmaker的回答和Yesh的类比非常棒。我想从hackerrank教程中添加更多。希望这也能有所帮助。
节点的深度(或层次)是它的距离(即。从树的根节点开始。 高度是根节点和最远叶之间的边数。 height(node) = 1 + max(height(node. leftsubtree),height(node. rightsubtree)))。 在阅读下面的示例之前,请记住以下几点。 任何节点的高度都是1。 空子树的高度是-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个节点。
树的整体深度等于树的高度,树的级别也一样,但如果对于特定的节点高度不等于深度,因为深度的定义表明从根节点到该节点的最长路径,对于高度,它是从该节点到叶节点。
总体树,D=H=L 但D可能不等于H。