特性
(1)每个节点或者是黑色,或者是红色。
(2)根节点是黑色。
(3)每个叶子节点(NIL)是黑色。 【注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!】
(4)如果一个节点是红色的,则它的子节点必须是黑色的。
(5)从一个节点到该节点的叶子节点的所有路径上包含相同数目的黑节点。【确保没有一条路径会比其他路径长出俩倍。因而,红黑树是相对是接近平衡的二叉树】
红黑树和AVL树区别
AVL树要通过旋转来保持平衡,而旋转非常耗时,适合用于插入与删除次数比较少,但查找多的情况
维护这种高度平衡所付出的代价比从中获得的效率收益还大,故而实际的应用不多,更多的地方是用追求局部而不是非常严格整体平衡的红黑树,如果应用场景中对插入删除不频繁,只是对查找要求较高,那么AVL还是较优于红黑树