刷題--程序員面試金典--面試題 04.02. 最小高度樹(go)

面試題 04.02. 最小高度樹

給定一個有序整數數組,元素各不相同且按升序排列,編寫一個算法,創建一棵高度最小的二叉搜索樹。

示例:
給定有序數組: [-10,-3,0,5,9],

一個可能的答案是:[0,-3,9,-10,null,5],它可以表示下面這個高度平衡二叉搜索樹:

          0 
         / \ 
       -3   9 
       /   / 
     -10  5 

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/minimum-height-tree-lcci
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。


 思路:

將數組分成左右兩個部分,分別做成左右子樹

func sortedArrayToBST(nums []int) *TreeNode {
    if len(nums) == 0 {
        return nil
    }

    mid := len(nums)/2
    l := sortedArrayToBST(nums[:mid])
    r := sortedArrayToBST(nums[mid+1:])

    t := &TreeNode{nums[mid],l,r}

    return t
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章