右旋一次之后有多高
一棵往左歪的小树(17 的左边挂 15,15 的左边挂 13),右旋一次。运行下面这段程序: class ANode: def __init__(self, val): self.val = val
算出一个节点的平衡因子
补全 balance_factor:左子树高度减右子树高度。 拿那棵往左歪的小树的根来算,输出结果。
判断这棵树需不需要旋转
补全 need_rotate:平衡因子的绝对值超过 1 就返回 True。 还是那棵往左歪的小树,输出结果。
亲手做一次右旋
补全 rotate_right:把左孩子转上来当根,返回新的根。 ⚠️ 左孩子原来的右子树不能丢,要接到老根的左边。 转完之后输出新根的值。
红黑树的根是什么颜色
红黑树规定根节点一定是【0】。
红黑树最关键的一条性质
让红黑树"不会太歪"的那条性质是【0】。
红黑树比 AVL 好在哪
工程上更常用红黑树而不是 AVL,是因为【0】。
这棵树里有几个黑节点
一棵小树:17 是黑的根,左边挂红色的 15,右边挂黑色的 24,15 的左边还挂着红色的 13。运行下面这段程序: class RNode: def __init__(self, val, color): self
根是黑的吗
同一棵树。运行下面这段程序: class RNode: def __init__(self, val, color): self.val = val self.color = color
数一数黑节点
补全 count_black:递归数出树里黑节点的个数。