🥛中序构造
不用担心mid+1超出范围,因为nums[mid]是存在的,所以在构造r时,nums.begin() + mid + 1极限时就是与nums.end()相等。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| class Solution { public: TreeNode* sortedArrayToBST(vector<int>& nums){ if(!nums.size()) return nullptr; int mid = nums.size() / 2; TreeNode* root = new TreeNode(nums[mid]);
vector<int> l(nums.begin(), nums.begin() + mid); vector<int> r(nums.begin() + mid + 1, nums.end()); root->left = sortedArrayToBST(l); root->right = sortedArrayToBST(r); return root; } };
|