自己写:把叶子摘掉

补全 remove:用递归删掉 val,返回新的根。这次删的是叶子 13。 删完之后输出中序的第一个。

开始练习 →

自己写:让唯一的孩子顶上来

同一个 remove,这次删 15——它只有左孩子 13。 删完之后输出根的左边是几(13 应该顶了上来)。

开始练习 →

自己写:右子树里最小的顶上来

同一个 remove,这次删 17——它左右都有孩子,是最难的一种。 删完之后输出新的根是几。

开始练习 →

三种情况删完,中序还得是升序

同一个 remove,把三种情况连着删一遍:先删叶子 13、再删单孩子 15、最后删双孩子 17。 删完之后中序走一遍,把剩下的数按顺序拼起来输出(用 / 隔开)。

开始练习 →

按从小到大的顺序插进去会怎样

把一批数按升序依次插进 BST,长出来的是【0】。

开始练习 →

退化成直线之后查找变成多少

BST 退化成一条直线之后,查找的复杂度变成【0】。

开始练习 →

平衡树要保证的是什么

各种平衡树(AVL、红黑树)要保证的是【0】。

开始练习 →

升序插入之后有多高

把 13、15、17、23、24 按升序依次插入。运行下面这段程序: class BNode: def __init__(self, val): self.val = val self.left =

开始练习 →

换个顺序插入之后有多高

同样五个数,改成 17、24、15、13、23 的顺序插入: class BNode: def __init__(self, val): self.val = val self.left = None

开始练习 →

算出升序插入长成多高

补全 height:递归算树高(空树算 0)。 这次算的是按升序插入的那棵。

开始练习 →