【问题标题】:Red black tree removal - why isn't this correct?红黑树移除 - 为什么这不正确?
【发布时间】:2014-09-28 20:59:23
【问题描述】:

如果我想从这棵红黑树中删除 64 节点,我执行以下操作:

http://i.imgur.com/7gINXce.jpg

但是,我使用的可视化小程序结果如下:

http://i.imgur.com/SxDYwgW.jpg

现在我假设他们在我将 52 设为红色后将 12 设为红色,这需要与他们一样进行重组。但是为什么我不能简单地制作 52 黑色来保持黑色深度属性?我的最终解决方案不也是正确的吗?

【问题讨论】:

    标签: data-structures tree red-black-tree


    【解决方案1】:

    没有。在您的解决方案中,54 左侧黑色高度为 1,右侧黑色高度为 0,使其无效。

    【讨论】:

    • 谢谢,这也有道理,我从来不知道这是红黑树的属性! :) 我想我明白他们为什么这样做了,现在我又重新阅读了书中的部分。谢谢。