LeetCode 108. 將有序陣列轉換為二叉搜尋樹
2020.10.11第一次解答:
解題思路
dbq對二叉樹相關知識掌握真的都還給老師了
一開始看這題,哇,好高階,還要平衡。想了半天沒有思路,尋思這應該是道medium題吧,結果一看是easy
我 好 菜 啊
於是重新開始想解題思路。
剛剛做了有關二叉搜尋樹的題目,二叉搜尋樹的性質是其中序遍歷是遞增序列。誒,那不巧了嗎,題目給定的陣列就是遞增的。
根據這個性質,可以直接遞迴構造二叉樹:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
TreeNode* buildBST(vector<int>& nums, int left, int right)
{
if (left >= right) return NULL;
int mid = (right + left) / 2;
TreeNode* root = new TreeNode(nums[mid]);
root->left = buildBST(nums, left, mid);
root->right = buildBST(nums, mid + 1, right);
return root;;
}
TreeNode* sortedArrayToBST(vector<int>& nums) {
return buildBST(nums, 0, nums.size());
}
};
然後呢,參考了評論發現,有人指出用 (right + left) / 2 獲取mid值會有溢位風險,穩妥的方法是 int mid = left + (right - left) / 2。
學習了。
相關文章
- leetcode 108.將有序陣列轉換為二叉搜尋樹 JavaLeetCode陣列Java
- LeetCode-108-將有序陣列轉換為二叉搜尋樹LeetCode陣列
- LeetCode將有序陣列轉化為二叉搜尋樹--JavaLeetCode陣列Java
- Python教程:將有序陣列轉換為二叉搜尋樹Python陣列
- 程式碼隨想錄演算法訓練營day23 | leetcode 669. 修剪二叉搜尋樹、108. 將有序陣列轉換為二叉搜尋樹、538. 把二叉搜尋樹轉換為累加樹演算法LeetCode陣列
- 程式碼隨想錄 第23天 | 669. 修剪二叉搜尋樹 ● 108.將有序陣列轉換為二叉搜尋樹 ● 538.把二叉搜尋樹轉換為累加樹 ● 總結篇陣列
- 程式碼隨想錄演算法訓練營,9月17日 | 669. 修剪二叉搜尋樹,108.將有序陣列轉換為二叉搜尋樹,538.把二叉搜尋樹轉換為累加樹演算法陣列
- 程式碼隨想錄演算法訓練營第23天 | 669. 修剪二叉搜尋樹、108.將有序陣列轉換為二叉搜尋樹、538.把二叉搜尋樹轉換為累加樹演算法陣列
- LeetCode系列之「有序連結串列轉換二叉搜尋樹」LeetCode
- LeetCode-109-有序連結串列轉換二叉搜尋樹LeetCode
- LeetCode 109——有序連結串列轉化二叉搜尋樹LeetCode
- LeetCode刷題記63-109. 有序連結串列轉換二叉搜尋樹【檢視解法】LeetCode
- 有序表和搜尋二叉樹二叉樹
- LeetCode 33——搜尋旋轉排序陣列LeetCode排序陣列
- leetcode-1382. 將二叉搜尋樹變平衡LeetCode
- LeetCode 81——搜尋旋轉排序陣列 IILeetCode排序陣列
- LeetCode33. 搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode#33搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode33 搜尋旋轉排序陣列LeetCode排序陣列
- 【LeetCode(Java) - 33】搜尋旋轉排序陣列LeetCodeJava排序陣列
- leetCode33搜尋旋轉排序陣列LeetCode排序陣列
- 466. 使用快慢指標把有序連結串列轉換二叉搜尋樹指標
- leetcode, LC68:旋轉排序陣列搜尋LeetCode排序陣列
- 將兩個有序陣列合併為一個有序陣列陣列
- Leetcode 700. 二叉搜尋樹中的搜尋(DAY 2)LeetCode
- JavaScript將陣列轉換為字串JavaScript陣列字串
- Leetcode 演算法題解系列 - 二維陣列快速查詢元素(二叉搜尋樹)LeetCode演算法陣列
- 將字串陣列轉換為浮點數陣列字串陣列
- LeetCode 95 | 構造出所有二叉搜尋樹LeetCode
- LeetCode98. 驗證二叉搜尋樹LeetCode
- LeetCode-098-驗證二叉搜尋樹LeetCode
- LeetCode-099-恢復二叉搜尋樹LeetCode
- 【LeetCode】98. 驗證二叉搜尋樹LeetCode
- LeetCode-096-不同的二叉搜尋樹LeetCode
- LeetCode-173-二叉搜尋樹迭代器LeetCode
- leetcode 700. 二叉搜尋樹中的搜尋 思考分析LeetCode
- [leetCode]95. 不同的二叉搜尋樹 IILeetCode
- 【ALGO】Leetcode 98.驗證二叉搜尋樹GoLeetCode