心里有红黑树 (4)

delete6

也有特殊的情况, 就是它的父节点只有一个,还是黑色

delete8

这时候,我们将他的父节点下溢, 原位置的节点舍弃

还有最后一种情况就是, 删除的是黑色的节点, 它的兄弟节点的是红色的节点

delete9

就像上图那样,我们想删除node99, 但是node99的兄弟节点其实是node55, 而不是node77, 我们怎么样才能转换为前面说的那些情况呢?

将被删除节点的父节点染成红色, 兄弟节点染黑

让被删除的父节点进行右旋转(node88右转)

得到下图

delete10

于是我们就将这种兄弟节点为红节点的情况转化成了兄弟节点为黑色节点的样子, 按照原来的方式进行删除修整即可

delete11

让原父节点下溢

原染成黑色

兄弟节点,染成红色

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfgpy.html