第三步:按照第二步的规则继续找。
58>56 我们需要继续找右子树,定位到了右子树节点 58,恭喜,此时我们已经找到了。

我们经过三步就已经找到了,其实就是我们平时所说的二分查找,这种二叉搜索树好像查找效率很高,但同样它也有缺陷,如下面这样的二叉搜索树。

看到这样的二叉搜索树是否很别扭,典型的大长腿瘸子,但它也是二叉搜索树,如果我们要找值为 50 的节点,基本上和单链表查询没多大区别了,性能将大打折扣。
这个时候我们的均衡二叉树就粉墨登场了,均衡二叉树就是在二叉搜索树的基础上添加了自动维持平衡的性质。
上面的大长腿瘸子二叉搜索树经过自动平衡后,可能就成为了下面这样的二叉树。

经过了自动平衡,再去找值为 50 的节点,查找性能将提升很多。红黑树就是非严格均衡的二叉搜索树。
红黑树规则特点
红黑树具体有哪些规则特点呢?具体如下:
- 节点分为红色或者黑色。
- 根节点必为黑色。
- 叶子节点都为黑色,且为 null。
- 连接红色节点的两个子节点都为黑色(红黑树不会出现相邻的红色节点)。
- 从任意节点出发,到其每个叶子节点的路径中包含相同数量的黑色节点。
- 新加入到红黑树的节点为红色节点。
规则看着好像挺多,没错,因为红黑树也是均衡二叉树,需要具备自动维持平衡的性质,上面的 6 条就是红黑树给出的自动维持平衡所需要具备的规则。
我们看一看一个典型的红黑树到底是什么样儿?
