C++ Super Simple Recursive Solution, Very Short
\nclass Solution {\npublic:\n    TreeNode* rec(vector<int>& nums, int start, int end) {\n        if (start >= end) return NULL;\n        int mid = (start + end)
```\nclass Solution {\npublic:\n    TreeNode* rec(vector<int>& nums, int start, int end) {\n        if (start >= end) return NULL;\n        int mid = (start + end) / 2;\n        TreeNode* node = new TreeNode(nums[mid]);\n        node->left = rec(nums, start, mid);\n        node->right = rec(nums, mid+1, end);\n        return node;\n    }\n    \n    TreeNode* sortedArrayToBST(vector<int>& nums) {\n        return rec(nums, 0, nums.size());\n    }\n};\n```\n****\n**Shorter version - Only 3 Lines!**\n```\nclass Solution {\npublic:\n    TreeNode* rec(vector<int>& nums, int start, int end) {\n        if (start >= end) return NULL;\n        int mid = (start + end) / 2;\n        return new TreeNode(nums[mid], rec(nums, start, mid), rec(nums, mid+1, end));\n    }\n    \n    TreeNode* sortedArrayToBST(vector<int>& nums) {\n        return rec(nums, 0, nums.size());\n    }\n};\n```\n**Like it? please upvote!**
['C']