我一直在对二叉树进行一些研究,发现每个其他来源都给出了二叉树中节点深度和高度的不同概念。
高度=从给定节点到叶节点的路径的最大长度。
Depth =从给定节点到根节点的边数。
/*
* 1 (1) level = 1, height = 3, depth = 0
* / \
* 2 3 (3) level = 2, height = 0, depth = 1
* / \
* 4 5 (5) level = 3, height = 1, depth = 2
* / \
* 6 7 (6, 7) level = 4, height = 0, depth = 3
*/
我从这个blog post中得到了这个概念,但是当只有一个节点,即根高度为1
时,我很困惑。
答案 0 :(得分:0)
嗯,水平只是一个不直观的词,因为我们在视觉表现中看待树木之类的东西。
根据这篇博客文章,节点的级别由1 +节点与根之间的连接数定义。
在这种情况下,所有这些级别都有意义。 7是距离1的3个连接。
但是,你也有一些不正确的高度。请记住,高度是从节点到叶子的最长路径。所以A的高度是到E的路径的边数,而不是G.它的高度是3。
5
/ \
6 7
在该示例中,5具有1行子节点,并且这些子节点是叶节点,因此它的高度为1.但是如果您将6和7视为单独的树本身,则它们的高度为0,因为它们是叶节点。
答案 1 :(得分:0)
简单来说,节点的深度是从根到达该节点必须遍历的边数。节点的高度是您必须从该节点开始向下遍历以到达最远节点的边数。树的高度是其根的高度。
答案 2 :(得分:0)
来自您关联的帖子:
Height of node – The height of a node is the number of edges on the longest downward path between that node and a leaf.
我认为它说根的高度是1,参考单根的例子。
在你的例子中,我认为它应该是:
/*
* 1 (1) level = 1, height = 3, depth = 0
* / \
* 2 3 (3) level = 2, height = 0, depth = 1
* / \
* 4 5 (5) level = 3, height = 1, depth = 2
* / \
* 6 7 (6, 7) level = 4, height = 0, depth = 3
*/
编辑:好的,你更正了你的帖子,所以我的帖子中的相关点是 我认为它说根的高度是1,参考单根的例子。