【发布时间】:2016-02-28 14:12:39
【问题描述】:
目标是从根节点中移除 22 并重新平衡树。
首先我删除 22,并用它的有序后继 28 替换它。
其次,我通过将空节点向左移动来重新平衡生成的树。结果树如下。
将 28 向上移动是正确的过程,最后我是否正确平衡了左侧?
22,34
/ | \
16 28 37
/ \ / \ / \
15 21 25 33 35 43
[28],34
/ | \
16 * 37
/ \ / \ / \
15 21 25 33 35 43
34
/ \
16,28 37
/ | \ / \
15 21,25 33 35 43
谢谢!
【问题讨论】:
-
一棵2-3棵树的平衡是所有子树的高度相同。在我看来,这里就是这种情况。
-
22 的顺序后继是 25。
-
是的,这是一个错误。所以现在我只需要在中间节点组合 (28,33) ,但它们不再处于相同的高度。重新平衡后的左右子树会是什么样子?
标签: algorithm binary-tree tree-balancing