1.平衡因子 BF:左子树和右子树高度差 =左子树高度 - 右子树高度的值(简称 BF)
2.最小不平衡子树:
距离插入节点最近的,并且 BF 的绝对值大于 1 的节点为根节点的子树。
88为最小不平衡子树的根节点。
1).LL型调整
- 旧根节点(节点 3)为新根节点(节点 2)的右子树
- 新根节点的 右子树(如果存在)为旧根节点的左子树
2).RR型调整
- 旧根节点(节点 1)为新根节点(节点 2)的左子树
- 新根节点的左子树(如果存在)为旧根节点的右子树
3).LR型调整
先左旋再右旋。
4).RL型调整
先右旋,再左旋。
平衡二叉树的节点删除:先找节点-》删除结点-》调整子树满足平衡二叉树
平衡因子为0或1时,找左子树最大的节点。与要删除的节点交换,然后删除要删除的节点,最大节点此时为根。
平衡因为为负数时,找右子树找最小的节点,与删除的节点交换,然后删除要删除的节点,最小节点此时为根。
例如:要删除20,bf为1,找左子树最大的节点为15,交换
交换:
删除:
LR型调整