利用深度優先遍歷,每次都取出中間數作為根節點
最開始取陣列中間數作為根節點,然後以該中間數左右分割出兩個子陣列
左邊的子陣列就是左子樹的陣列,右邊的子陣列就是右子樹的陣列
然後再根據各個子樹對應的陣列去取出中間數作為子樹的根節點,以此類推
class
solution
private treenode dfs
(int
nums,
int start,
int end)
int mid =
(start + end)/2
; treenode root =
newtreenode
(nums[mid]);
root.left =
dfs(nums, start, mid -1)
; root.right =
dfs(nums, mid +
1, end)
;return root;
}}
LeetCode108 將有序陣列轉換為二叉搜尋樹
將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。示例 給定有序陣列 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示下面這個高度平衡二叉搜尋樹 0 3 9 10...
LeetCode108 將有序陣列轉換為二叉搜尋樹
將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。示例 給定有序陣列 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示下面這個高度平衡二叉搜尋樹 0 3 9 10...
leetcode108 將有序陣列轉換為二叉搜尋樹
將有序陣列轉換為二叉搜尋樹。難度 簡單。將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。示例 給定有序陣列 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示下面...