红-黑树是基于二叉搜索树的,如果对二叉搜索树不了解,可以先看看:
二叉搜索树
红黑树的主要规则:
1.每个节点不是红色就是黑色。
2.根节点一定是黑色的。
3.如果一个节点是红色的,那么它的两个子节点都必须是黑色的。(反之不一定)
4.从根节点到每个叶子节点或者空子节点的路径,都必须包含相同数目的黑色节点。
补充:红黑树没有AVL树那么平衡。它有它自己的平衡方法,满足了上面4条就叫平衡了。
如果添加或者删除节点之后打破了平衡,那么通过改变节点颜色,左旋,右旋可以使红黑树恢复平衡。
具体的看这个链接里的讲解:红黑树