当前位置:首页 > 算法 > 正文内容

红黑树

淙嶙8年前 (2018-07-19)算法1061

红黑树是一种自平衡的二叉查找树。除了符合二叉查找树的基本特征外,还具有如下特征:

1.每个节点是红色或黑色。

2.根节点是黑色。

3.每个叶子节点都是黑色的空节点(NIL节点)。[注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!]

4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)

5.从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。

注意
(01) 特性(3)中的叶子节点,是只为空(NIL或null)的节点。
(02) 特性(5),确保没有一条路径会比其他路径长出俩倍。因而,红黑树是相对是接近平衡的二叉树。

下图中这棵树,就是一颗典型的红黑树:

相关文章

leetcode - 2两数相加

leetcode - 2两数相加

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和...

快速排序

快速排序

package com.dl.study.m3; import java.util.Arrays; /** * 分治法 * 把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分...

leetcode - 4寻找两个正序数组的中位数

leetcode - 4寻找两个正序数组的中位数

给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。 请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nu...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。