本篇文章中根节点在第1层
文章目录
一. 树的高度和深度,节点的高度和深度的定义:
-
树的高度(Height of a Tree):
树的高度是从根节点到叶子节点的最长路径上的边数。树的高度是树中所有节点的高度中的最大值。
-
树的深度(Depth of a Tree):
树的深度与树的高度通常是同一个概念,即树的高度。
-
节点的高度(Height of a Node):
一个节点的高度是从该节点到其最深叶子节点的最长路径上的边数。叶子节点的高度是 0。
-
节点的深度(Depth of a Node):
一个节点的深度是从根节点到该节点的路径上的边数。根节点的深度是 0。
二. 树的高度和深度,节点的高度和深度的区别:
假设我们有如下的二叉树:
层数
A ------------> 1
/ \
B C ------------> 2
/ \
D E ------------> 3
/
F ------------> 4
-
1. 树高(Tree Height)和 树的深度(Depth of a Tree)
树高是从根节点
A
到最深的叶子节点的最长路径的长度。路径的长度是指经过的边数。-
从根节点
A
到叶子节点F
的路径是:A -> B -> E -> F
。这条路径有 3 条边。 -
因此,树高和树的深度都是3。
-
-
2. 节点的高度(Height of a Node)
节点的高度是指从该节点到其最深的叶子节点的最长路径的长度。我们计算各节点的高度:
- 节点
F
是叶子节点,它的高度是 0(因为没有子节点)。 - 节点
E
的高度是从E
到F
的路径长度,即 1。 - 节点
D
是叶子节点,它的高度是 0(没有子节点)。 - 节点
B
的高度是从B
到其最深的叶子节点(即F
)的路径长度,即B -> E -> F
,总共 2 条边。 - 节点
C
是叶子节点,它的高度是 0(没有子节点)。 - 节点
A
的高度是从A
到其最深的叶子节点(即F
)的路径长度,即A -> B -> E -> F
,总共 3 条边。
所以:
-
节点
A
的高度是 3。 -
节点
B
的高度是 2。 -
节点
E
的高度是 1。 -
节点
c
,D
,F
的高度是 0。(因为它们都是叶子节点)
- 节点
-
3. 节点的深度(Depth of a Node)
节点的深度是指从根节点
A
到该节点的路径长度,即经过的边数。-
节点
A
是根节点,它的深度是 0。 -
节点
B
的深度是 1(从A
到B
)。 -
节点
C
的深度是 1(从A
到C
)。 -
节点
D
的深度是 2(从A
到B
到D
)。 -
节点
E
的深度是 2(从A
到B
到E
)。 -
节点
F
的深度是 3(从A
到B
到E
到F
)。
-
-
4.总结
-
树高是从根节点到最深的叶子节点的最长路径的长度。在这个例子中是 3。
-
节点的高度是从该节点到其最深的叶子节点的最长路径的长度。例如,节点
A
的高度是 3,节点B
的高度是 2。 -
节点的深度是从根节点到该节点的路径长度。例如,节点
A
的深度是 0,节点B
的深度是 1。
-