получено сообщение об ошибке при попытке запустить код "terminate вызывается после создания экземпляра 'std :: bad_alloc' what (): std :: bad_alloc" Код:
#include<bits/stdc++.h>
using namespace std;
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
int d = height(root);
vector<int> lol[d];
vector<vector<int>> ans;
queue<TreeNode*> q;
if(root!=NULL)
q.push(root);
for(int i=0; i<=d;i++){
ans.push_back(level(i,q,lol[i]));
}
return ans;
}
vector<int> level(int i,queue<TreeNode*> q,vector<int> lol){
if (q.size() != 0)
{
for(int a=0;a<=i;a++){
lol.push_back(q.front()->val);
q.push(q.front()->left);
q.push(q.front()->right);
q.pop();
}
}
return lol;
}
int height(TreeNode* root){
if (root==NULL)
return 0;
else{
int lef = height(root->left) + 1;
int rig = height(root->right) + 1;
if(lef>rig)
return lef;
else
return rig;
}
}
};
Вывод должен быть вФорма: [[3], [9,20], [15,7]]
Может кто-нибудь сказать, где ошибка в моем коде.Я новичок в программировании на C ++ и в Leetcode, поэтому трудно найти ошибки.Пожалуйста, помогите.