Tree AVL树旋转';s
只是一个关于avl树的简单问题。 如果我有这棵树: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 / \
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