如果出现了,
平衡因子为2的情况。
一定存在某个局部。
节点a的左子树b和右子树c均为平衡树(或者不存在)。
a不为平衡树,使调整使a成为平衡树即可。
a
b c
不妨设a的左子树b为n+2层 右子树c为n层(n>=0)
b有且仅有一个子树为n+1层 ,将该子树或该子树的子树上移一层即可。
(在维护的过程中,减去刚加入的导致不平衡的一个节点之前的树为平衡树)
若d为n+1层,原树 :
A
B c
D e f g
改变后:
B
D A
e c
f g
若e为n+1层,原树:
A
B c
d E
f g
改变后:
E
B A
d f g c
右侧更长同理。