我正在尝试对二叉树进行简单的级别顺序遍历,但它说我有一个段错误。我正在为我正在使用的函数设置代码。
#include<queue>
/*
struct node
{
int data;
node* left;
node* right;
}*/
void LevelOrder(node * root)
{
queue<node*> q;
q.push(root);
while(!q.empty())
{
node* t;
t=q.front();
cout<<t->data;
q.push(t->left);
q.push(t->right);
q.pop();
}
}
答案 0 :(得分:2)
您需要检查right
和if (t->left) {
q.push(t->left);
}
if (t->right) {
q.push(t->right);
}
是否为空。
root
如果Data.Tree.unfoldTree
可以为null,您还需要检查它。