void insert(TreeNode* node, const vector<int> &A, int s, int m, int e) {
if(s>e)
return;
int lmid = (m-s)/2+s;
int rmid = (e-m)/2+m;
if(lmid >= 0) {
TreeNode* newNode1 = new TreeNode(A[lmid]);
node->left = newNode1;
insert(node->left, A, s, lmid, m-1);
}
if(rmid >= 0) {
TreeNode* newNode2 = new TreeNode(A[rmid]);
node->right =newNode2;
insert(node->right, A, m+1, rmid, e);
}
}
TreeNode* Solution::sortedArrayToBST(const vector<int> &A) {
int s = 0;
int e = A.size()-1;
int m = (e-s)/2+s;
TreeNode* root = new TreeNode(A[m]);
insert(root, A, s, m, e);
return root;
}
dsdsa