1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
class Solution { public: TreeNode* sortedArrayToBST(vector<int>& nums) { return sortedArrayToBST(begin(nums), end(nums)); }
private: typedef vector<int>::iterator Iter;
TreeNode *sortedArrayToBST(Iter b, Iter e) { if (b == e) return nullptr; auto m = b + (e - b) / 2; auto res = new TreeNode(*m); res->left = sortedArrayToBST(b, m); res->right = sortedArrayToBST(m + 1, e); return res; } };
|