AVL平衡二叉树
2018-07-25 本文已影响10人
mrjunwang
平衡二叉树和红黑树的区别
image.png image.png
上面散列表中已经提过了:如果桶数满的时候,JDK8是将链表转成红黑树的~。并且,我们的TreeSet、TreeMap底层都是红黑树来实现的。
红黑树为了保持平衡,还有制定一些约束,遵守这些约束的才能叫做红黑树:
红黑树是二叉搜索树。
根节点是黑色。
每个叶子节点都是黑色的空节点(NIL节点)。
每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点(每一条树链上的黑色节点数量(称之为“黑高”)必须相等)。
2.平衡树的插入和删除时间复杂度