一个4节点的红黑树应该是什么样子的

What should a 4-node red-black tree look like

你好,我以前对红黑树知之甚少,也许这是一个愚蠢的问题。
这是一个 4 节点树:

它是合法的红黑树吗? 在我看来,它实际上违反了红黑树的规则:

  1. Every red node has both of its children colored black.
  2. Every path from the root to a tree leaf contains the same number (the "black-height") of black nodes.

如果不是,4 节点红黑应该是什么样子?
谢谢

你是对的,这棵树违反了红黑树的规则,因为路径3-2-1-Null经过3个黑色节点,而3-4-Null只经过2个。

回想一下,没有约束 black 节点必须将其子节点涂成 red,只有相反的情况。 Even a tree with all black nodes is technically a red-black tree,只要它是平衡的,因此满足“从根到树叶的每条路径都包含相同数量('black-height')的黑色节点。”

因此,您可以通过将节点 2 和 4 绘制为黑色并将节点 1 绘制为红色来使这棵树成为有效的红黑树。注意节点 1(唯一的红色节点)仍然有 2 个黑色子节点,并且从根到叶子的所有路径都会碰到 3 个黑色节点。因此满足红黑树的规则