AVL树的四种旋转

已知

在一颗平衡二叉树上添加一个节点
最坏情况:可能会导致所有祖先节点都失衡
父节点、非祖先节点,都不可能失衡
下面列举了四种出现失衡的情况,分别是LL、RR、LR、RL,指的是新增节点相对于失衡节点的左右子树位置

LL – 右旋转(单旋)

在这里插入图片描述

g.left=p.right
p.right=g

让p称为这颗子树的根节点
还需要注意维护:T2、p、g的parent属性
先后更新g、p的高度

RR – 左旋转(单旋)

在这里插入图片描述

g.right=p.left
p.left=g

让p称为这颗子树的根节点
还需要注意维护:T1、p、g的parent属性
先后更新g、p的高度

LR – RR左旋转,LL右旋转(双旋)

在这里插入图片描述

//n、p先进行RR左旋转
p.right=n.left
n.right=p
//此时转化为中间的树,为LL的情况
//n、g进行LL右旋转
g.left=n.right
n.right=g

RL – LL右旋转,RR左旋转(双旋)

在这里插入图片描述

//n、p先进行LL右旋转
p.left=n.right
n.right=p
//此时转化为中间的树,为RR的情况
//n、g进行RR左旋转
g.right=n.left
n.left=g
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值