lurenaa的博客

🥛中序构造

  不用担心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;
}
};