leetcode Convert Sorted Array to Binary Search Tree
2014-01-29 09:44
465 查看
Convert Sorted Array to Binary Search Tree
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.本题是二分法的高级应用,每次选择root都是从数列的中间选择,那么最后构造出来的二叉树一定是高度平衡的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 biSortedArrayToBST(num, 0, num.size()-1); } TreeNode *biSortedArrayToBST(vector<int> &num, int low, int up) { if (low > up) return NULL; int mid = low + ((up-low)>>1); TreeNode *r = new TreeNode(num[mid]); r->left = biSortedArrayToBST(num, low, mid-1); r->right = biSortedArrayToBST(num, mid+1, up); return r; } };
//2014-2-16 update TreeNode *sortedArrayToBST(vector<int> &num) { return toBST(num, 0, num.size()-1);//下标num.size()-1 } TreeNode *toBST(vector<int> &num, int n1, int n2) { if (n1 > n2) return nullptr; int mid = n1 + ((n2-n1)>>1); TreeNode *root = new TreeNode(num[mid]); root->left = toBST(num, n1, mid-1); root->right = toBST(num, mid+1, n2); return root; }
相关文章推荐
- Leetcode: Convert Sorted Array to Binary Search Tree
- 【LeetCode】Convert Sorted Array to Binary Search Tree 解题报告
- Leetcode 108 Convert Sorted Array to Binary Search Tree
- [LeetCode]108 Convert Sorted Array to Binary Search Tree
- LeetCode – Refresh – Convert Sorted Array to Binary Search Tree
- LeetCode: Convert Sorted Array to Binary Search Tree && Convert Sorted List to Binary Search Tree
- [leetcode]Convert Sorted Array to Binary Search Tree
- LeetCode——Convert Sorted Array to Binary Search Tree
- [LeetCode] Convert Sorted Array to Binary Search Tree
- LeetCode-Convert Sorted Array to Binary Search Tree
- 【leetcode】Convert Sorted Array to Binary Search Tree
- LeetCode(108)Convert Sorted Array to Binary Search Tree
- [Leetcode] Convert Sorted Array to Binary Search Tree (Java)
- [leetcode]Convert Sorted Array to Binary Search Tree
- 【leetcode】Convert Sorted Array to Binary Search Tree
- [C++]LeetCode: 100 Convert Sorted Array to Binary Search Tree (AVL树)
- 【题解】【BST】【Leetcode】Convert Sorted Array to Binary Search Tree
- LeetCode--Convert Sorted Array to Binary Search Tree(平衡二叉搜索树)
- LeetCode-Convert Sorted Array to Binary Search Tree
- [leetcode] Convert Sorted Array to Binary Search Tree