平衡二叉树调整

大伙都知道平衡二叉树在插入和删除的过程中会可能会出现RR、LL、RL、LR,但头疼的是当遇到比较复杂的就判断不出来是哪一种类型。时间紧迫,下面就举一例,其它情况大伙自己尝试,这边推荐一个可视化算法网站,有助于大伙学习AVL Tree Visualzation (usfca.edu)

技巧:在每个结点的左右两边标上自身到子树的高度,标完后,从下往上找第一个被破坏的节点,然后查看该结点与插入结点的位置关系,就可以判断出是什么类型了

假设:我们依次插入1、2、3、4、5、6、7

  • 插入1

在这里插入图片描述

  • 插入2

​ 插入2后,1的右子树高度变2,左子树高度仍然为1,没有破坏平衡

在这里插入图片描述

  • 插入3

​ 插入3后,2的右子树高度变2,1的右子树高度变3,平衡被破坏,可以看出,插入的结点位置(3)在是在首个被破坏的结点(1)的“右右下方”,也就是RR,只需被破坏的结点的右子树左旋即可。

在这里插入图片描述

  • 插入4

​ 插入4后,结点3的右子树高度变成2,结点2的右子树高度为3,平衡没有被破坏。

在这里插入图片描述

  • 插入结点5

​ 插入结点5后,从下往上看,发现结点(3)的右子树高度为3,左子树高度为1,首个被破外平衡的结点,查看其与插入的结点的位置关系,同上,RR,被破外平衡的结点的右子树左旋即可。

在这里插入图片描述

  • 插入结点6

​ 插入结点5后,从下往下看,发现结点(2)的右子树高度为4,左子树高度为2,首个被破外平衡的结点,查看其与插入的结点的位置关系,同上。

在这里插入图片描述

  • 插入结点7

​ 同理。

在这里插入图片描述

图画得很丑哈,大伙凑合着看,估计也没什么人看,按照这个技巧,大伙可以试试其它三种情况,复习去了,白白.😀
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值