gpt4 book ai didi

c++ - leetcode 中的二叉树层序遍历

转载 作者:太空宇宙 更新时间:2023-11-04 12:44:02 24 4
gpt4 key购买 nike

尝试运行代码“在抛出‘std::bad_alloc’实例后调用终止”时出错 什么(): 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 编程的新手,所以很难发现错误。请帮忙。

最佳答案

我的猜测是您将节点插入队列而不检查它们是否为 NULL。从队列中弹出时,您还可以在不检查的情况下取消引用它们。

关于c++ - leetcode 中的二叉树层序遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52609783/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com