红黑树在所有路径上具有相同数量的黑色节点意味着什么?

问题描述

我不明白这个条件是什么意思:“对于每个节点,从节点到后代叶子的所有路径都包含相同数量的黑色节点”

解决方法

让我们举一个例子树:

enter image description here

语句说“对于每个节点...”,所以让我们选择一个这样的节点作为示例,根节点,节点 13。

它谈到了“后代叶子”。这些叶子是值为 6、11、15、22 和 27 的节点。它们是我们选择的节点 13 的后代,它们是叶子,所以 “后代叶子”

“从节点到后代叶子的所有路径”因此是以下路径:

  • 13→8→1→6
  • 13→8→11
  • 13→17→15
  • 13→17→25→22
  • 13→17→25→27

现在计算每条路径上的黑色节点:

  • 13→8→1→6 有 2 个黑色节点(13 和 1)
  • 13→8→11 有 2 个黑色节点(13 和 11)
  • 13→17→15 有 2 个黑色节点(13 和 15)
  • 13→17→25→22 有 2 个黑色节点(13 和 25)
  • 13→17→25→27 有 2 个黑色节点(13 和 25)

确实,我们看到“从节点到后代叶子的所有路径都包含相同数量的黑色节点”:对于我们的示例树和选定节点,正好是 2。

您可以对另一个节点重复此练习,例如节点 8。那么 “后代叶” 仅是节点 6 和 11。

现在的结果是:

  • 8→1→6 有 1 个黑色节点 (1)
  • 8→11 有 1 个黑色节点 (11)

再说一次,这句话是对的。实际上,当该语句对根为真时,对所有节点也都为真。