面试题:
红黑树的特点:
1.根节点是黑色
2.叶子节点是黑色
3.红色节点的子节点是黑色
4.从一个节点到该节点的子孙节点的所有路径的黑色节点数目是一样的
为什么要用红黑树?
1.红黑树是非AVL树,跟AVL树相比,在插入或删除元素时,不需要旋转很多次以保持树的平衡,效率大大提升。
2.二叉平衡树在一定情况下,会退化成一个线性结构,红黑树则不会出现这种情况
红黑树和平衡二叉树的区别:
1.平衡二叉树更直观,查询的效率高于红黑树,但是插入和删除的效率低于红黑树。
红黑树的使用场景:
TreeMap、TreeSet以及JDK1.8之后的HashMap底层都用到了红黑树。