递归法。时间O(n),空间O(logN)。
参考:http://leetcode.com/2010/11/convert-sorted-array-into-balanced.html
class Solution {
public:
TreeNode *sortedArrayToBST(vector<int> &num) {
return convert(num, 0, num.size());
}
TreeNode *convert(vector<int> &num, int start, int len)
{
if(len <= 0) return NULL;
int mid = start + len/2;
TreeNode *root = new TreeNode(num[mid]);
root->leftt = convert(num, start, mid-start);
root->right = convert(num, mid+1, start+len-mid-1);
return root;
}
};