所以我正在经历某处的贴代码:混乱创建从载体主阵列子阵列
public:
TreeNode* sortedArrayToBST(vector<int>& nums) {
if(nums.size() == 0) return NULL;
int mid=nums.size()/2;
TreeNode* root = new TreeNode(nums[mid]);
auto it=nums.begin()+1;
cout<<*it;
vector<int> left(nums.begin(),nums.begin()+mid);
vector<int> right(nums.begin()+mid+1,nums.end());
root->left=sortedArrayToBST(left);
root->right=sortedArrayToBST(right);
return root;
}
令样品输入是[1,2,3,4]
因此,正如我打印迭代器它,它给我的答案如下3
此外,然而,当创建子数组时,创建的子数组由元素[1,2]组成。我在这里感到困惑,因为nums.begin()+ middle将指向元素3,子数组不应该[1,2,3]?我想我有一个非常基本的和幼稚的疑问,有人能清除这个 感谢
与你的问题没有直接关系,但是这段代码大量浪费了运行时资源 - 它应该在原始向量上使用视图,而不是在每一步创建两个新副本 –