Accepted C++ recursive solution within a single method
Recursively call the sortedArrayToBST() method providing new vector for each call to construct left and right children: \n\n    class Solution {\n    public:\n 
Recursively call the **sortedArrayToBST()** method providing new vector for each call to construct left and right children: \n\n    class Solution {\n    public:\n        TreeNode *sortedArrayToBST(vector<int> &num) {\n            if(num.size() == 0) return NULL;\n            if(num.size() == 1)\n            {\n                return new TreeNode(num[0]);\n            }\n            \n            int middle = num.size()/2;\n            TreeNode* root = new TreeNode(num[middle]);\n            \n            vector<int> leftInts(num.begin(), num.begin()+middle);\n            vector<int> rightInts(num.begin()+middle+1, num.end());\n            \n            root->left = sortedArrayToBST(leftInts);\n            root->right = sortedArrayToBST(rightInts);\n            \n            return root;\n        }\n    };
['Recursion']