把二叉树打印成多行
2014-10-14 14:14
405 查看
需要用两个变量来记录下一层有多少个结点需要打印以及本次还有多少个结点未打印。
void levelPrint(Node *root){
if (root==NULL)
{
return ;
}
queue<Node *> q;
q.push(root);
//下一层有多少个结点需要打印
int i=0;
//还有多少个结点未打印
int j=1;
while (!q.empty())
{
Node * p=q.front();
q.pop();
--j;
printf("%d\t",p->data);
if (p->left!=NULL)
{
q.push(p->left);
++i;
}
if (p->right!=NULL)
{
q.push(p->right);
++i;
}
//按之字形打印
if (j==0){
printf("\n");
j=i;
i=0;
}
}
}
void levelPrint(Node *root){
if (root==NULL)
{
return ;
}
queue<Node *> q;
q.push(root);
//下一层有多少个结点需要打印
int i=0;
//还有多少个结点未打印
int j=1;
while (!q.empty())
{
Node * p=q.front();
q.pop();
--j;
printf("%d\t",p->data);
if (p->left!=NULL)
{
q.push(p->left);
++i;
}
if (p->right!=NULL)
{
q.push(p->right);
++i;
}
//按之字形打印
if (j==0){
printf("\n");
j=i;
i=0;
}
}
}
相关文章推荐
- 剑指offer54--二叉树的多行打印
- 剑指offer-把二叉树打印成多行-php
- 打印二叉树题型:从上到下打印,打印为为多行以及按之字形打印为多行
- 面试题67:把二叉树打印成多行
- 把二叉树打印成多行
- 剑指offer——把二叉树打印成多行
- 《剑指offer》刷题笔记(树):把二叉树打印成多行
- 把二叉树打印成多行java实现
- 剑指offer | 训练题59:把二叉树打印成多行
- 【剑指Offer】把二叉树打印成多行
- 剑指offer(C++)——把二叉树打印成多行
- 面试题61 把二叉树打印成多行
- 把二叉树打印成多行
- 剑指offer_把二叉树打印成多行+之字形
- 剑指offer — 把二叉树打印成多行
- 剑指offer——把二叉树打印成多行
- 56.把二叉树打印成多行
- 剑指offer--面试题60:把二叉树打印成多行
- 面试题60. 把二叉树打印成多行
- 剑指offer(57)-把二叉树打印成多行