这是算法理论中的一个简单问题。 它们之间的区别是,在一种情况下,你计算节点的数量,在另一种情况下,计算根节点和具体节点之间最短路径上的边的数量。 哪个是哪个?


当前回答

我知道这很奇怪,但是Leetcode也根据路径上的节点数量来定义深度。因此,在这种情况下,深度应该从1开始(总是计算根),而不是0。以防有人和我一样有同样的困惑。

其他回答

节点的“深度”(或等效的“层数”)是根节点“路径”上的边数

节点的“高度”是指从该节点到叶节点的最长路径上的边数。

深度:


树中节点的深度是从根节点到该节点的路径长度。树的深度是树中所有节点的最大深度。

高度:


节点的高度是从该节点到树中最深节点的路径长度。树的高度是树中从根节点到最深节点的路径长度。(例如:上面例子中的树的高度是4(计算边,而不是节点))。 只有一个节点的树高度为零。

要了解更多关于树的基础知识,请访问:树的介绍和属性

我了解到深度和高度是节点的属性:

节点深度是指从该节点到树的根节点的边数。根节点的深度为0。 节点的高度是指从该节点到叶节点的最长路径上的边数。叶节点的高度为0。

树的属性:

树的高度是它的根节点的高度,或者等价地,是它最深节点的深度。 树的直径(或宽度)是任意两个叶节点之间的最长路径上的节点数。下面的树直径为6个节点。

树的整体深度等于树的高度,树的级别也一样,但如果对于特定的节点高度不等于深度,因为深度的定义表明从根节点到该节点的最长路径,对于高度,它是从该节点到叶节点。

总体树,D=H=L 但D可能不等于H。

树的高度和深度是相等的……

但是节点的高度和深度是不相等的,因为…

高度是通过从给定节点遍历到可能最深的叶来计算的。

深度是从根到给定节点.....的遍历计算的