把排序陣列轉換為高度最小的二叉搜尋樹

2021-07-30 23:48:47 字數 858 閱讀 3554

題目描述:把排序陣列轉換為高度最小的二叉搜尋樹

問題描述:給乙個排序陣列(從小到大),將其轉換為一棵高度最小的排序二叉樹。

思路:直接採用中間值來作為二叉樹的根節點;將原陣列分成左右均等或者相差乙個數的兩個新陣列;然後遞迴的對這兩個新陣列進行相同的處理。

**:class solution  

int start = 0, end = a.size() - 1;  

int mid = (start + end) / 2;  

treenode *head = new treenode(a[mid]);  

head->left = sortedarraytobstcore(a, start, mid - 1);  

head->right = sortedarraytobstcore(a, mid + 1, end);  

return head;  

}  treenode *sortedarraytobstcore(vector&a, int start, int end)  

int mid = (start + end) / 2;  

treenode *head = new treenode(a[mid]);  

head->left = sortedarraytobstcore(a, start, mid - 1);  

head->right = sortedarraytobstcore(a, mid + 1, end);  

return head;          }};

感想:這道題可以採用先建立二叉排序樹,然後再進行二叉樹平衡處理;不過如果是這麼做的話,感覺就比較麻煩了,還有需要注意的就是處理邊界值,避免陣列溢位。

把排序陣列轉換為高度最小的二叉搜尋樹

問題描述 給乙個排序陣列 從小到大 將其轉換為一棵高度最小的排序二叉樹。注意事項there may exist multiple valid solutions,return any of them.樣例 給出陣列 1,2,3,4,5,6,7 返回 4 2 6 1 3 5 7 思路 用陣列的中間值作...

把排序陣列轉換為高度最小的二叉搜尋樹

1.問題描述 給乙個排序陣列 從小到大 將其轉換為一棵高度最小的排序二叉樹。注意事項 there may exist multiple valid solutions,return any of them.2.思路 樣例給出陣列 1,2,3,4,5,6,7 返回 4 2 6 1 3 5 7 要建立一...

把排序陣列轉換為高度最小的二叉搜尋樹

問題描述 給乙個排序陣列 從小到大 將其轉換為一棵高度最小的排序二叉樹。注意事項 there may exist multiple valid solutions,return any of them.樣例給出陣列 1,2,3,4,5,6,7 返回 4 2 6 1 3 5 7 解題思路 首先弄清楚二...