题目链接:https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/#/description
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
TreeNode* sortedArrayToBST(vector<int>& nums) {
return test(0,nums.size()-1,nums);
}
// 参数:vector拿出来建树的起始结束位置s,t
TreeNode* test(int s,int t,vector<int>& nums){
TreeNode* node = new TreeNode(NULL);
int len=t-s+1;
if(len<=0) return NULL;
int k=len/2;
node->val=nums[s+k];
node->left=test(s,s+k-1,nums);
node->right=test(s+k+1,t,nums);
return node;
}
};