Self-balancing binary search tree
由前苏联的数学家Adelse-Velskil和Landis在1962年提出的高度平衡的二叉树
定义:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
1. 基本旋转
3 2
2 => 1 3
1
3(直接右旋还是不平衡) 3 2
1 => 2 => 1 3
2 1
1 2
2 => 1 3
3
1(直接左旋还是不平衡) 1 2
3 => 2 => 1 3
2 3
2. 复杂旋转
8* (失衡点) 6
6 9 => 5 8
5 7 3 7 9
3
8* 6
6 9 => 4 8
4 7 5 7 9
5
7* 9
6 9 => 7 10
8 10 6 8 12
12
7* 9
6 9 => 7 12
8 12 6 8 10
10
3. 高级旋转
7* 7* 9
6 11 => 6 9 => 7 11
9 12 11 6 10 12
10 10 12
7* 7* 9
6 11 => 6 9 => 7 11
9 12 8 11 6 8 12
8 12
10* 10* 8
6 11 => 8 11 => 6 10
5 8 6 5 7 11
7 5 7
10* 10* 8
6 11 => 8 11 => 6 10
5 8 6 9 5 9 11
9 5
错误参考(处处是坑)
https://blog.csdn.net/wanghanlincsdn/article/details/61208273
正确参考
https://blog.csdn.net/javazejian/article/details/53892797