最佳答案
知道(现已删除)根的每个子树的高度,您可以将两个子树中较高的一个作为新根。 (使两个根中较短的一个会违反你的平衡性)
我不确定是否涉及旋转,因为我记得旋转是在单个子树上实现的,但在这种情况下,您实际上有两棵树;相反,我认为这只是一些引用更新。
在这种情况下,如果 4 是新根,则有两个右子树 - 5 和先前的右子树 7-8。这是有道理的,新右子树的根将是先前右子树的最左边的节点,5 位于其下方。
关于binary-tree - 如果删除根节点如何重新平衡 BST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74858339/