我正在尝试解决以下问题:“给定一个具有唯一整数元素的排序(递增顺序)数组,编写一个算法来创建一个高度最小的 BST。”
给定的答案将根节点作为数组的中间。虽然这样做对我来说很直观,但我试图严格地证明,让根节点位于数组的中间总是最好的。
书中给出的理由是:“要创建最小高度的树,我们需要将左子树中的节点数与右子树中的节点数尽可能匹配。这意味着我们想要根节点成为数组的中间,因为这意味着一半的元素会小于根,而一半的元素会更大。”
我想问:
为什么任何最小高度的树都是左子树中的节点数与右子树中的节点数尽可能相等的树?(或者,你有没有其他方法可以证明最好让根节点位于数组的中间?)
最小高度的树是否与平衡的树相同?从上一个关于 SO 的问题中,这就是我得到的印象,(可视化平衡树)但我很困惑,因为这本书特别指出“具有最小高度的 BST”,而从未“平衡 BST”。
谢谢。
资料来源:破解编码采访