- 題目:給定一個陣列,其中元素按升序排序,將其轉換為高度平衡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及CRUD操作排序
- 學習筆記——二叉平衡樹(BST)筆記
- 資料結構☞二叉搜尋樹BST資料結構
- [LeetCode] 776. Split BSTLeetCode
- 449-Serialize and Deserialize BST
- 450-Delete Node in a BSTdelete
- 用PHP來實現二分搜尋樹(BST)PHP
- 538-Convert BST to Greater Tree
- 二叉樹(BST)中序遍歷的三種方法二叉樹
- 【Algorithm&DataStructure】二叉查詢樹(BST)的遍歷GoASTStruct
- [LeetCode] 230. Kth Smallest Element in a BSTLeetCode
- LeetCode之Convert BST to Greater Tree(Kotlin)LeetCodeKotlin
- 653-Two Sum IV - Input is a BST
- 使用JS去實現一個BST(二叉查詢樹)JS
- 看動畫學演算法之:二叉搜尋樹BST動畫演算法
- 『資料結構與演算法』二叉查詢樹(BST)資料結構演算法
- 從BST到LSM的進階之路
- BST(二叉搜尋樹)、AVL樹、紅黑樹、2-3樹、B樹、B+樹、LSM樹、Radix樹比較
- 前端學習資料結構1 二分排序樹(BST)前端資料結構排序
- 1636 按照頻率將陣列升序排序陣列排序
- 使用sort方法實現陣列升序降序陣列
- 陣列二:使用陣列可變函式為陣列排序陣列函式排序
- LeetCode_1636_按照頻率將陣列升序排序LeetCode陣列排序
- leetcode 530. Minimum Absolute Difference in BST二叉搜尋樹的最小絕對差 (簡單)LeetCode
- 字串陣列轉為樹形結構字串陣列
- 樹狀陣列陣列
- [Python手撕]兩個升序陣列的中位數Python陣列
- PHP 陣列轉樹結構/樹結構轉陣列PHP陣列
- 陣列--移除陣列中指定的元素,不改變原陣列和改變原陣列陣列
- JavaScript 學習筆記 - 多維陣列變為一維陣列JavaScript筆記陣列
- leetcode 450. delete-node-in-a-bst 刪除二叉搜尋樹中的節點 python3LeetCodedeletePython
- 解析樹狀陣列陣列
- Js陣列物件的屬性值升序排序,並指定陣列中的某個物件移動到陣列的最前面JS陣列物件排序
- 二維樹狀陣列陣列
- 樹狀陣列詳解陣列
- 樹狀陣列基礎陣列
- 工具函式:普通陣列如何轉為樹形結構資料(多層級)陣列?函式陣列