题目:
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
解答:
解决树的问题,一般都会涉及到递归。
class Solution {
public:
TreeNode* sortedArrayToBST(vector<int>& nums) {
if(nums.size() == 0)
return NULL;
if(nums.size() == 1)
return (new TreeNode(nums[0]));
int mid = nums.size() / 2;
TreeNode* ans = new TreeNode(nums[mid]);
vector<int> left, right;
left.clear();
right.clear();
for(int i = 0; i<mid; i++) left.push_back(nums[i]);
for(int i = mid + 1; i<nums.size(); i++) right.push_back(nums[i]);
ans->left = sortedArrayToBST(left);
ans->right = sortedArrayToBST(right);
return ans;
}
};