Easy Explained C++ Solution
STEP - 1  : Get the Middle of the sorted array and make it root node.\n\nSTEP - 2 : Recursively do same for left half and right half of the array.\n \t Get the 
**STEP - 1  :** Get the Middle of the sorted array and make it root node.\n\n**STEP - 2 :** Recursively do same for left half and right half of the array.\n* \t Get the middle of left half array and make it left child of the root created in step 1.\n*    Get the middle of right half and make it right child of the root created in step 1\n\n![image](https://assets.leetcode.com/users/images/bf1b0ab6-d417-4a89-87b6-cbc664b90975_1600930783.3803284.png)\n\n\n\n```\nTreeNode* sortedArrayToBST(vector<int>& nums) \n    {\n        return buildBST(nums, 0, nums.size()-1);        \n    }\n    TreeNode* buildBST(vector<int> &nums, int l,int r)\n    {\n        if(l > r)\n            return NULL;\n        int mid = (l + r)/2;\n        TreeNode* root = new TreeNode(nums[mid]);\n        root->left  = buildBST(nums, l, mid-1);\n        root->right = buildBST(nums, mid+1, r);        \n        return root;\n    }\n```\t\n\n**If you like, please upvote it.**
[]