一、定义
- 平衡二叉树(Balanced Binary Tree 或 Height-Banlanced Tree),又称AVL树。
二、性质
- 是一棵空树
- 不是一棵空树,则具有以下性质:
- 它的左子树和右子树都是平衡二叉树
- 左子树和右子树的深度之差的绝对值不超过1
- 若将二叉树上的平衡因子(BF)定义为该结点的左子树深度减去右子树深度,则平衡因子只能是-1、0或1
三、最小失衡子树
- 在新插入的结点向上查找,以第一个平衡因子的绝对值超过1的结点为根的子树成为最小不平衡子树。
- 一棵失衡的树,是有可能有多棵子树同时失衡的。而这个时候,我们是要调整最小的不平衡子树,就能够将不平衡的树调整为平衡的树。
三、调整措施
1、单向旋转
- 最小不平衡子树的根的平衡因子(BF)同它的孩子(左孩子或者右孩子)的平衡因子(BF)是同号的,所以仅需要一次旋转就可以了。
1.1 单向左旋平衡处理
- 右子树右子节点:当新插入的结点为右子树的右子结点时,我们需要进行左旋