红黑树和平衡二叉树的区别?
红黑树是一个二叉查找树,不像平衡二叉树要求所有节点左右子树高度差不超过1,红黑树只要求从一个节点到所有叶结点的路径中,最长路径不超过最短路径的两倍,所以红黑树只追求树的大致平衡。
因为对树平衡程度的不同要求,平衡二叉树在插入和删除的过程中会花费比较大的代价来维护树的平衡,所以平衡二叉树不适合插入、删除太多的场景。而红黑树只要求弱平衡,它做到了当插入和删除时,只需最多旋转3次就能实现一定程度的平衡,所以能将查询、插入和删除的时间复杂度维持在对数级别(O(logn))。
对红黑树了解吗?说一下
红黑树性质:
- 红黑树中节点分为黑色节点和红色节点。
- 根节点和所有叶子结点(NIL节点)是黑色。(根叶黑)
- 每条从根到叶子的路基上不能出现连续两个红色节点。(不红红)
- 从任一节点到所有叶子结点的路径上的黑色节点数量相同。(黑路同)