算法思路:
1.取数组中间的值为根节点
2.将左边的值放入左子树
3.将右边的值放入右子树
class Solution {
public:
TreeNode* sortedArrayToBST(vector<int>& nums) {
int len = nums.size() - 1;
return build(nums,0,len);
}
TreeNode* build(vector<int>& nums,int m,int n){
if(m == nums.size() - 1) return new TreeNode(nums[m]);
if(m == n){
return NULL;
}
int k = (m + n) / 2;
TreeNode* root = new TreeNode(nums[k]);
root->left = build(nums,m ,k);
root->right = build(nums,k + 1,n);
return root;
}
};