红黑树的删除

本文详细阐述了在红黑树中删除节点时,针对不同节点颜色和子节点结构的策略,包括删除红色和黑色叶子节点,以及涉及替换、旋转和颜色调整的操作。重点讲解了特殊情况下的转换技巧,如红色节点变为黑色和父子颜色调整。
摘要由CSDN通过智能技术生成

九种(1+2+3+1+1+1)

删除红黑树的节点就是删除该红黑树右边最左的叶子节点

那么就转换成了删除叶子节点

1.删除红色的叶子节点

直接删除,没有变换

2.删除黑色节点

        2.1黑色节点有一个红色节点的孩子,将红色节点的孩子替换上删除节点即可,黑色节点有2个红色节点的孩子,将红色节点选一个替换删除即可

        2.2 黑色节点没有子节点,但是自己的兄弟节点有红色节点 。那么就可以找自己的兄弟节点借,删除了自身之后,兄弟节点的红色节点来一个替换父节点,父节点下来替换删除节点(三种情况,第一种是它兄弟节点有一个左孩子,第二种是兄弟节点有一个右孩子,需要旋转多次,第三种就是兄弟节点有2个红色节点,这时候取一个近的替换上来即可)

        2.3自己没有红色节点,兄弟也没有红色节点,但是父亲节点是红色,可以找父亲节点借,把父亲节摇下来替换兄弟节点的颜色,然后和自己的兄弟节点染成红色组成一个新的分组

 

        2.4自己没有红色节点,兄弟也没有红色节点,父亲也是黑色,这个时候,将父亲节点移动下来,兄弟节点染红,父亲节点依旧是黑色下来,之后上面空了一个父节点,向上递归删除节点。

 

上面节点都是自己是黑色,然后兄弟节点是黑色,下面这种是自己是黑色节点,兄弟节点是红色节点。 

       2.5删除节点是黑色节点90,

 

 这个时候就需要做一个改变,把红色节点变成黑色节点,转换一下指针,转化为上面的情况来解决

 

然后就变成删除90了,这个时候就他就有了黑色兄弟,父亲节点是红色也可以借下来了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值