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:
代码语言:javascript复制
把一个升序序列变成一个平衡二叉搜索树:
c
代码语言:javascript复制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;
}
};