明白红黑树前需要理解的前提概念:
二叉查找树(BST)
1.左子树上所有节点的值均<=他的根节点的值
2.右子树上所有节点的值均>=他的根节点的值
3.左右子树也一定分别为二叉查找树
二叉查找树利用和二分查找相同的概念来进行数据的便捷查找:(二分查找见排序算法解释)
如果根节点足够大,二叉查找树“左腿”会很长。如下图:
此时为了平衡左腿节点,(最长路径不超过最短路径的两倍)引入平衡的二叉查找树=>红黑树:
红黑树满足:(在满足树自身是一个二叉查找树BST的前提下)
1.节点是红色或者黑色。
2.根节点是黑色。
3.每个叶子的节点都是黑色的空节点。
4.每个红色节点的两个子节点都是黑色的。
5.从任意节点到其每个叶子的所有路径都包含相同的黑色节点。