平衡二叉树定义(AVL):它或者是一颗空树,或者具有以下性质的二叉树:它的左子树和右子树的深度之差(平衡因子)的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。
在平衡二叉树进行插入操作时遇到的不平衡情况有多种,但是这么多种情况都可以分解为一下四种基础情景:把它叫做:左左、左右、右右、右左。
旋转有两种:左旋和右旋。
1.左左情况如图:
,显然4的平衡因子大于1了,为了保持平衡那我们就这样做:让4节点的左孩子指向3的右子树(此时为NULL),让3的右孩子指向4,让树根指向3,如图 ,这种操作我们规定为右旋操作,此图是以4为根进行旋转。
2.右左情况(节点9不平衡):
来源:http://lib.csdn.net/article/datastructure/9204
http://blog.csdn.net/ch717828/article/details/46908829
参考:https://www.cnblogs.com/zhangbaochong/p/5164994.html#undefined