class Solution {
public:
vector<vector<int>> vec;
vector<vector<int>> levelOrder(TreeNode* root) {
level_binary(root,0);
return vec;
}
void level_binary(TreeNode * root,int level){
if(root == NULL){ //递归终止条件
return ;
}
if(vec.size() == level) vec.resize(level + 1); //为什么要用resize
vec[level].push_back(root->val);
level_binary(root->left,level + 1);
level_binary(root->right,level + 1);
}
};
问题:为什么vector的二维数组的第一维为什么要用resize
https://blog.csdn.net/ljf_study/article/details/66968197
因为不增加一行,下面的vec[level]就越界了
不将vector的大小扩充的话,下一行vec[level].push_back(root->val);中的vec[level]将会数组越界,因为此时vec此时的大小为level,最后一个下标为level- 1