#include<iostream>
#include<queue>
using namespace std;
struct TreeNode{
int val;
TreeNode *lchild,*rchild;
TreeNode(int x)
{
val=x,lchild=NULL,rchild=NULL;
};
};
void LevelOrder(TreeNode *root){
queue<TreeNode* >tmp;
if(root) tmp.push(root);
int level=1;
while(tmp.size()){
cout<<level<<":";//输出当前层数
int size=tmp.size();
for(int i=0;i<size;i++){//输出每个结点所在层的编号
TreeNode *p=tmp.front(); tmp.pop();
cout<<p->val<<" ";
if(p->lchild) tmp.push(p->lchild);
if(p->rchild) tmp.push(p->rchild);
}
level++;
cout<<endl;
}
}
int main()
{
/* 这是参照wangqiong上课讲的代码写的,个人感觉比较麻烦,于是使用下面的方法写~
TreeNode *pa=new TreeNode; pa->val=1;
TreeNode *pb=new TreeNode; pb->val=2;
TreeNode *pc=new TreeNode; pc->val=3;
TreeNode *pd=new TreeNode; pd->val=4;
TreeNode *pe=new TreeNode; pe->val=5;
TreeNode *pf=new TreeNode; pf->val=6;
pa->lchild=pb; pa->rchild=pc;
pb->lchild=pd; pb->rchild=pe;
pc->lchild=pf; pc->rchild=NULL;
pd->lchild=NULL; pd->rchild=NULL;
pe->lchild=NULL; pe->rchild=NULL;
pf->lchild=NULL; pf->rchild=NULL;
root=pa;*/
TreeNode *root1=new TreeNode(1);
root1->lchild=new TreeNode(2);
root1->rchild=new TreeNode(3);
root1->lchild->rchild=new TreeNode(10);
root1->rchild->lchild=new TreeNode(5);
root1->rchild->rchild=new TreeNode(4);
LevelOrder(root1);
return 0;
}
18xue_5
于 2020-12-27 17:54:38 首次发布