我試圖解決以下問題:「給定一個具有唯一整數元素的排序(遞增順序)數組,寫一個算法來創建一個具有最小高度的BST。最小高度的BST
給定的答案將根節點作爲數組的中間。雖然這樣做對我來說很直觀,但我試圖嚴格證明,最好將根節點設置在數組中間。
本書給出的理由是:「爲了創建最小高度的樹,我們需要儘可能地將左子樹中的節點數量與右子樹中的節點數量相匹配,這意味着我們希望根節點是數組的中間部分,因爲這意味着一半的元素會少於根,另一半會更大。「
我想問:
爲什麼會最小高度的任何樹是其中的左子樹的節點數目儘可能在右子樹爲等於節點的數目? (或者,您有任何其他方式可以證明最好將根節點設置在陣列的中間位置嗎?)
樹是否與平衡的樹相同?從上一個關於SO的問題來看,這是我得到的印象,(Visualizing a balanced tree),但我很困惑,因爲這本書明確指出「BST具有最小的高度」並且從未「平衡BST」。
謝謝。
來源:破解編碼採訪