平衡二叉树的插入和删除(从现在开始摆脱旋转)

平衡二叉树是指任意节点的左子树和右子树高度之差的绝对值不超过1

一.插入操作

1.找到合适位置插入

 2.从下到上,沿着插入节点与根节点的连线,找到不平衡的二叉树

以68为根节点的二叉树平衡,左右子树高度差为1

 以60为根节点的二叉树不平衡,左右子树高度差为2,不平衡

3.使不平衡的二叉树平衡,最后插入到原来的二叉树中

再来一个例子

 同理,从下到上找根节点,判断是否为平衡二叉树

经观察可以发现,整棵树才是非平衡二叉树,所以从根节点,沿着路径画三个节点,将这三个节点调整为平衡二叉树

 调整完毕后剩下的节点按照平衡二叉树的规则填补进去即可

二.删除操作

要求:二叉树的高度不增加

1.直接删除叶子节点

2.被删除的节点无左子树,就让右子树的根节点代替

3.被删除节点无右子树,就让左子树的根节点代替 

4.左右都有孩子

那么就找左子树中最大的数(63)替换,或者找右子树中最小的数(67)进行替换

下面是替换了63的例子

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值