为什么以下代码进入无限循环?我查阅了引用 - Level Order Traversal of a Binary Tree,我发现这与我的代码之间没有太大区别。那究竟是什么问题呢?
void levelorder(struct node *root)
{
queue<struct node*> q;
q.push(root);
while (!q.empty()){
const node * const temp = q.front();
q.pop();
cout<<temp->value << " ";
if(root->left)
q.push(root->left);
if(root->right)
q.push(root->right);
}
}
答案 0 :(得分:0)
级订单遍历:
输入8,4,2,3,12
我的输出8 4 2 12 3(输出错误)
在这个a中是从0到3(树的高度)
int level(tree *start, int a)
{
if(start==NULL)
return(-1);
if(a==0)
printf("%d ",start->info);
else
{
level(start->left,--a);
level(start->right,--a);
}
}