问题描述
我不明白这个条件是什么意思:“对于每个节点,从节点到后代叶子的所有路径都包含相同数量的黑色节点”
解决方法
让我们举一个例子树:
语句说“对于每个节点...”,所以让我们选择一个这样的节点作为示例,根节点,节点 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)
再说一次,这句话是对的。实际上,当该语句对根为真时,对所有节点也都为真。