根据维基百科,
树的高度是从根到的路径的长度 树中最深的节点。一个(根)树只有一个节点( root)的高度为零(或一)。
我不明白 - 它是零还是一个(或两者)?
答案 0 :(得分:32)
这只是你对二叉树高度的递归描述所做的一次。您可以考虑仅由0高度或1高度的节点组成的树。
如果你真的想以某种方式思考它,你可以这么认为
这只是描述最小树的高度,然后在任何情况下,无论何时添加降序节点,您都会添加相关边缘,因此它会相应增加。
在维基百科提供的示例中:
此树可以具有高度4(节点)或3(边缘)。这取决于你是通过边缘还是节点来计算它。
答案 1 :(得分:11)
使用节点计数而不是边缘计数的一个优点是它将空情况(零节点和节点级别)与最小情况(一个节点和一个节点级别)区分开来。在某些情况下,空树不会有意义,但在其他情况下,空的尝试将是完全合法的。
答案 2 :(得分:6)
取决于约定。这里没有“正确”的答案。我被教导它是1.但是零也是正确的。
答案 3 :(得分:3)
我认为,一个根节点的高度应为0。 它具有实际意义,因为2 ^ height也为您提供该级别的节点数。
答案 4 :(得分:1)
假设您正在以递归方式在节点类中计算高度,我将这样做以返回高度而不包含根的高度(java代码):
int height(){
int leftHeight = 0;
int rightHeight = 0;
if(left != null)
leftHeight =+ left.height() + 1;
if(right != null)
rightHeight =+ right.height() + 1;
return Math.max(leftHeight, rightHeight);
}
如果要包括根的高度,则可以这样做:
int height(){
int leftHeight = 0;
int rightHeight = 0;
if(left != null)
leftHeight =+ left.height();
if(right != null)
rightHeight =+ right.height();
return Math.max(leftHeight, rightHeight) + 1;
}
答案 5 :(得分:0)
取决于您想要如何解释树的高度。在某些应用程序中,具有一个节点的树被解释为具有一个高度,而其他树将其视为具有零高度。