Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
Example:
把一个升序序列变成一个平衡二叉搜索树:
c++
class Solution { public: TreeNode* sortedArrayToBST(vector<int>& nums) { if(nums.empty()) return NULL; int l = 0 ; int r = nums.size()-1; int mid = (l+r)/2 ; vector<int> left; vector<int> right; for(int i=0;i<mid;i++) left.push_back(nums[i]); for(int i=mid+1;i<=r;i++) right.push_back(nums[i]); TreeNode* tree = new TreeNode(nums[mid]); tree->left = sortedArrayToBST(left); tree->right = sortedArrayToBST(right); return tree; } };