问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

平衡二叉树的四种旋转类型详解

创作时间:
作者:
@小白创作中心

平衡二叉树的四种旋转类型详解

引用
CSDN
1.
https://blog.csdn.net/a1463073169/article/details/137188978

平衡二叉树是一种特殊的二叉树,它要求任意节点的左右子树的高度差不超过1。当向平衡二叉树中插入或删除节点时,可能会破坏这种平衡性,此时需要通过旋转操作来恢复平衡。平衡二叉树主要有四种旋转类型:LL型、LR型、RR型和RL型。

旋转类型的判断与进行

如何判断旋转类型?从不平衡的节点(先找离造成不平衡的节点最近的),朝着造成不平衡的节点走两步,看每一步是Left还是Right以判断。

LL型旋转

旋转类型的判断

假设有一个节点 5,在它的左边有一个节点 4,当节点 3 插入会导致 5 的不平衡,此时不平衡节点是 5 ,造成不平衡的节点是 3 ,走两步进行判断,第一步是走一个Left,第二步也是走一个Left,因此这是一个LL型旋转。

旋转的进行

中间节点成为新的父节点,原父节点向下变成右子树,其余子树按位置重新排列。



示例

下面的这个平衡二叉树在插入了节点 0 之后变得不平衡了,分析如何进行旋转。

分析:0 的插入导致 5 的不平衡,从 5 向 0 走两步判断为LL型旋转,0 和 1 作为一个整体,此时中间节点就是 2 ,2 成为新的父节点,而原来的父节点 5 向下变成右子树,其余的再重新排序,0和1和6不发生改变,仍然在原来的位置,3大于2小于5,因此排在5的左边。

旋转结果

RR型旋转

旋转类型的判断

假设有一个节点 A,在它的左边有一个节点 B,当节点 C 插入 B 的右边会导致 A 的不平衡,此时不平衡节点是 A,造成不平衡的节点是 C,走两步进行判断,第一步是走一个Right,第二步也是走一个Right,因此这是一个RR型旋转。

旋转的进行

中间节点成为新的父节点,原父节点向下变成左子树,其余子树按位置重新排列。

LR型旋转

旋转的进行

首先让后两个节点进行旋转,变成LL型旋转,随后再按照LL型旋转规则进行旋转。

示例

下面的这个平衡二叉树在插入了节点 3 之后变得不平衡了,分析如何进行旋转。

分析:3 的插入导致 6 的不平衡,从 6 到 3 是LR型旋转,因此将 4 与 2 进行旋转,变成一个 6 4 2 的LL型旋转,再以 4 为新父节点,6 变为 4 的右子树,3 变成 2 的右子树,剩下的数保持不变。

旋转结果

RL型旋转

旋转的进行

首先让后两个节点进行旋转,变成RR型旋转,随后再按照RR型旋转规则进行旋转。

示例

下面的这个平衡二叉树在插入了节点 4 之后变得不平衡了,分析如何进行旋转。

分析:4 的插入造成 3 的不平衡,3 到 4 是RL型旋转,因此将 5 6 先进行旋转,形成 3 5 6 的RR型旋转,再以中间数 5 作为新的父节点,3 变成 5 的左子树,4接在3的右边,其余保持不变。

旋转结果

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号