2

AVL 树似乎有四种变换:Left-Left、Left-Right、Right-Left 和 Right-Right。但是,似乎也可能存在其他情况。我将此提交为左平衡:

在此处输入图像描述

左旋和右旋都不能平衡这棵树。使用什么算法来平衡它?

4

2 回答 2

3

LL和LR都可以在这里应用

        50
       /  \
     40    55
    /  \
  35    45
  / \   / \
34  36 44 46

在第一个 LR 转弯后:

           50
          /  \
        45   55
       /  \
     40    46
    /  \
  35    44
  / \
34  36

在第二个 LR 转弯后:

        45
       /  \
     40    50
    / \    / \
  35  44  46  55
 / \
34  36

这是有效的 AVL 树。注意

在 AVL 树中,任何节点的两个子子树的高度最多相差 1

你也可以做 LL 转弯:

     40
    /  \
  35    50
  / \   / \
34  36 45  55
       /\
     44  46

这又是有效的 AVL 树。

于 2015-12-22T06:08:51.137 回答
1

我认为您无法获得左平衡案例。因为如果你建造了左平衡树,你可能会先得到左左或左右,然后树会旋转并保持平衡。

于 2015-12-22T04:46:28.143 回答