Tree AVL树旋转';s

Tree AVL树旋转';s,tree,avl-tree,Tree,Avl Tree,只是一个关于avl树的简单问题。 如果我有这棵树: 27 / \ 9 50 / \ 2 15 \ 21 为什么它与这个答案相平衡 15 / \ 9 27 / / \ 2 21 50 与此相反(或者两者都有效?): 根据AVL树的回溯算法,平衡分两步进行: I.左旋转对左子树执行: | | 9 15 / \

只是一个关于avl树的简单问题。 如果我有这棵树:

    27
   /  \
  9    50
 / \
2   15
      \
       21
为什么它与这个答案相平衡

    15
   /  \
  9    27
 /    /  \
2    21   50
与此相反(或者两者都有效?):


根据AVL树的回溯算法,平衡分两步进行:

I.
左旋转
对左子树执行:

  |              |
  9              15
 / \            /  \
2   15   =>    9    21
     \        /
      21     2
二,<代码>右旋转对整个树执行:

      27           15
     /  \         /  \
    15   50 =>   9    27
   /  \         /    /  \
  9    21      2    21   50
 /
2

第二个答案根本不正确,因为它没有保留元素的顺序。

您是否意外地交换了第二个答案中的9和15?因为它不是一个有效的搜索树。但它仍然是平衡的。
      27           15
     /  \         /  \
    15   50 =>   9    27
   /  \         /    /  \
  9    21      2    21   50
 /
2