【发布时间】:2017-12-02 15:52:57
【问题描述】:
我需要创建一个函数来打印水平二叉树及其子节点,例如输入是根中的 1,它的 2 个子节点左边是 10,右边是 12 然后输出将类似于 - 1:L:10,R:12 (然后是 endl) 2:L:-1,R:-1 (然后是 endl) 3:L:-1,R:-1 依此类推我不知道为什么我的代码运行无限次从而给出时间限制超出错误 如果有人可以看看
#include<queue>
void printLevelWise(BinaryTreeNode<int> *root) {
if(root==NULL) return;
queue<BinaryTreeNode<int>*>q;
q.push(root);
while(q.size()!=0){
BinaryTreeNode<int> *front=q.front();
cout<<front->data<<":";
q.pop();
if(root->left!=NULL) {
cout<<"L:"<<root->left->data;
q.push(root->left);
}
else{
cout<<"L:-1";
}
if(root->right!=NULL){
cout<<",R:"<<root->right->data;
q.push(root->right);
}
else{
cout<<",R:-1";
}
cout<<endl;
}
}
【问题讨论】:
标签: c++ class tree queue binary-tree