【问题标题】:Can a red node have just 1 black child in a red-black tree?一个红色节点可以在一棵红黑树中只有 1 个黑色子节点吗?
【发布时间】:2023-04-18 02:37:02
【问题描述】:

红黑树的规则:

  1. 每个节点不是红色就是黑色。
  2. 根是黑色的。
  3. 每片叶子 (NIL) 都是黑色的。
  4. 如果一个节点是红色的,那么它的两个子节点都是黑色的。
  5. 对于每个节点,从节点到后代叶子的所有简单路径都包含相同数量的黑色节点。

规则 4 提到红色节点需要两个黑色孩子,但如果一开始只有一个孩子怎么办?是否有论据可以证明或反驳这一点?

【问题讨论】:

标签: data-structures binary-tree binary-search-tree proof red-black-tree


【解决方案1】:

不,一个红色节点不能有一个孩子,考虑以下情况:- 1.如果它的单个子节点是红色的......这不可能发生,因为没有两个连续的节点可以是红色的。 2.如果孩子是黑人...这又不会发生,因为这会违反“黑色高度规则”...这种情况下会在路径中产生一个额外的黑色节点,根据该规则是不正确的。

【讨论】: