从其子节点的余额计算AVL树节点平衡

时间:2013-12-27 18:33:33

标签: c++ data-structures binary-tree avl-tree tree-balancing

假设我有一个AVL树,它的节点将自己的平衡因子存储为一个整数。

如果我知道它的左右孩子的平衡因子,我该如何计算节点N的平衡因子。

请注意我不有rHeight和lHeight,所以 bal(N)= lHeight - rHeight 不是一个选项。

1 个答案:

答案 0 :(得分:1)

简短回答 - 你不能。

答案很长:

考虑这两棵树:

           A
        /     \
     B           C                   A
   /   \       /   \                / \
  D     E     F     G              B   C
 / \   / \   / \   / \
H   I J   K L   M N   O

它们具有相同的平衡因子,但它们的高度不同。

因此,如果你只有孩子的平衡因子,你不知道该子树有多高,因此你不能仅使用它来计算父母的平衡因子。