概念
平衡二叉树定义二叉树中任意一个节点的左右子树的高度相差不能大于 1
平衡二叉查找树的出现就是为了避免二叉查找树在频繁的插入、删除等操作的情况下,出现极端情况(比如退化成链表),导致时间复杂度退化。
因此,平衡二叉查找树中的“平衡”,意思就是让整个树模型看起来更加对称,不会出现左边特别高,右边特别低,或者左边特别低,右边特别高的情况。这样,整棵树的高度相对来说更低一点,所以插入,删除,查找等操作的效率更高。
虽然平衡二叉树解决了二叉查找树可能退化了链表的极端情况,并且能够把查找时间控制在O(logn),所以”平衡“的意思就是为了使性能不退化。但是由于平衡二叉树严格的定义:每个节点的左子树和右子树的高度差至多等于1,导致每次在插入或者删除的时候,为了符合平衡二叉树严格的条件,需要进行一些操作来进行调整,比如左旋、右旋等操作,使其再次符合平衡二叉树的条件。
很明显,如果要是再插入和删除非常频繁的场景下,平衡二叉树每一次更新都必须要进行调整,这样太耗时了,性能也会受到很大影响。
因此,为了避免平衡二叉树在频繁更新过程中,所带来的维持树结构的时间消耗,从而引入了红黑树。