/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
struct TreeNode* bulid(int* nums,int head,int tail){
if(head>tail) return NULL;
int mid=head+(tail-head)/2;
struct TreeNode* temp=(struct TreeNode*)malloc(sizeof(struct TreeNode));
temp->val=nums[mid];
temp->left=bulid(nums,head,mid-1);
temp->right=bulid(nums,mid+1,tail);
return temp;
}
struct TreeNode* sortedArrayToBST(int* nums, int numsSize) {
return bulid(nums,0,numsSize-1);
}