- 題目:給定一個陣列,其中元素按升序排序,將其轉換為高度平衡BST。
- 思路:因為是升序陣列,那麼中間的數字一定是根節點值,然後在對左右兩邊的陣列進行查詢根節點的遞迴。一次處理左右子樹。
-
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode *sortedArrayToBST(vector<int> &num) { return sortedArrayToBST(0, num.size()-1, num); } TreeNode *sortedArrayToBST(int left, int right, vector<int> &num){ if (left > right) return NULL; int mid = (left + right)/2 + (left + right)%2 ; TreeNode *root = new TreeNode(num[mid]); root->left = sortedArrayToBST(left, mid-1, num); root->right = sortedArrayToBST(mid+1, right, num); return root; } };
(BST)升序陣列變為BST樹
相關文章
- (樹)根據排序陣列或者排序連結串列重新構建BST樹排序陣列
- 樹-BST基本實現
- 二叉堆、BST 與平衡樹
- 二叉排序樹BST及CRUD操作排序
- 學習筆記——二叉平衡樹(BST)筆記
- 資料結構☞二叉搜尋樹BST資料結構
- 450-Delete Node in a BSTdelete
- 用PHP來實現二分搜尋樹(BST)PHP
- 把BST轉換為雙向連結串列
- Leetcode-Recover BSTLeetCode
- 【Algorithm&DataStructure】二叉查詢樹(BST)的遍歷GoASTStruct
- 二叉樹(BST)中序遍歷的三種方法二叉樹
- 使用JS去實現一個BST(二叉查詢樹)JS
- 看動畫學演算法之:二叉搜尋樹BST動畫演算法
- LeetCode-Inorder Successor in BSTLeetCode
- 653-Two Sum IV - Input is a BST
- LeetCode-Largest BST SubtreeLeetCode
- Leetcode-Validate BSTLeetCode
- JavaScript陣列升序和降序排列JavaScript陣列
- 『資料結構與演算法』二叉查詢樹(BST)資料結構演算法
- [LeetCode] 776. Split BSTLeetCode
- 從BST到LSM的進階之路
- Leetcode Kth Smallest Element in a BSTLeetCode
- Leetcode-Convert Sorted Array to BSTLeetCode
- 前端學習資料結構1 二分排序樹(BST)前端資料結構排序
- 將二叉排序樹BST轉換成排序的雙向連結串列排序
- 使用sort方法實現陣列升序降序陣列
- 陣列二:使用陣列可變函式為陣列排序陣列函式排序
- Leetcode-Convert Sorted List to BST.LeetCode
- 1636 按照頻率將陣列升序排序陣列排序
- LeetCode之Convert BST to Greater Tree(Kotlin)LeetCodeKotlin
- 字串陣列轉為樹形結構字串陣列
- [LeetCode] 230. Kth Smallest Element in a BSTLeetCode
- 樹狀陣列陣列
- PHP 陣列轉樹結構/樹結構轉陣列PHP陣列
- 棧和佇列:滑動視窗和陣列變樹問題佇列陣列
- JavaScript 學習筆記 - 多維陣列變為一維陣列JavaScript筆記陣列
- 陣列--移除陣列中指定的元素,不改變原陣列和改變原陣列陣列