博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(剑指Offer)面试题60:把二叉树打印成多行
阅读量:6079 次
发布时间:2019-06-20

本文共 1150 字,大约阅读时间需要 3 分钟。

题目:

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。

思路:

很明显,采用广度优先遍历来解决,但因为需要按行输出,所以需要判断每一层的开始和结束,因此需要两个变量,一个表示当前层尚未打印的结点数,一个表示下一层结点的数目。

在线测试:

http://www.nowcoder.com/books/coding-interviews/445c44d982d04483b04a54f298796288?rp=3

AC代码:

/*struct TreeNode {    int val;    struct TreeNode *left;    struct TreeNode *right;    TreeNode(int x) :            val(x), left(NULL), right(NULL) {    }};*/class Solution {public:        vector
> Print(TreeNode* pRoot) { vector
> result; if(pRoot==NULL) return result; queue
nodes; nodes.push(pRoot); int curLevel=1; int nextLevel=0; TreeNode* tmp; vector
tLevel; while(!nodes.empty()){ tmp=nodes.front(); tLevel.push_back(tmp->val); if(tmp->left!=NULL){ nodes.push(tmp->left); nextLevel++; } if(tmp->right!=NULL){ nodes.push(tmp->right); nextLevel++; } nodes.pop(); curLevel--; if(curLevel==0){ result.push_back(tLevel); tLevel.clear(); curLevel=nextLevel; nextLevel=0; } } return result; }};

  

转载地址:http://fzhgx.baihongyu.com/

你可能感兴趣的文章
结合当前公司发展情况,技术团队情况,设计一个适合的技术团队绩效考核机制...
查看>>
python-45: opener 的使用
查看>>
cad图纸转换完成的pdf格式模糊应该如何操作?
查看>>
Struts2与Struts1区别
查看>>
网站内容禁止复制解决办法
查看>>
Qt多线程
查看>>
我的友情链接
查看>>
想说一点东西。。。。
查看>>
css知多少(8)——float上篇
查看>>
NLB网路负载均衡管理器详解
查看>>
水平添加滚动条
查看>>
PHP中”单例模式“实例讲解
查看>>
VS2008查看dll导出函数
查看>>
VM EBS R12迁移,启动APTier . AutoConfig错误
查看>>
atitit.细节决定成败的适合情形与缺点
查看>>
Mysql利用binlog恢复数据
查看>>
我的友情链接
查看>>
用yum安装mariadb
查看>>
一点IT"边缘化"的人的思考
查看>>
WPF 降低.net framework到4.0
查看>>