红黑树Java的空的孩子

时间:2016-03-11 10:38:30

标签: java red-black-tree

对于红黑二分查找树的红黑规则中的第四条规则(不确定它是否只是我书中的第四条),从根到叶子或者无子项的每条路径都必须包含相同数量的黑色节点,究竟什么是null子节点?据我所知,它就像一个潜在的孩子,可以添加到一个节点,但实际上,它不存在。

......................................................
                            25(black)                                                              
            20(black)                             50(red)                              
    --              --              --                 70(black)              
......................................................

这本书说这个案子不符合红黑规则,我不知道为什么。我认为这与null孩子有关。因为看起来它满足所有规则。根是黑色的,每个节点是红色或黑色,如果节点是红色,其子节点是黑色。从根到叶子的每条路径都包含相同数量的黑色节点。那么null孩子究竟是如何使这个案例不遵循红黑规则的呢?

1 个答案:

答案 0 :(得分:1)

路径25, 50, --有1个黑色节点(25);路径25, 50, 70有2个黑色节点(25和70)。通常,红黑树的规则不区分叶子和空子;我们可以说70节点也有两个空子节点,它就是叶子节点。