[剑指offer]把二叉树打印成多行
2016-05-23 10:30
344 查看
题目描述
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。分析:层序遍历用队列,这道题比较讨厌的是要把每层分开,如果只是单纯把值全部打印出来,只要判断队列是否为空就可以了,这里需要判断已经打印的个数是不是这一层的总个数。
代码:
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } }; */ class Solution { public: vector<vector<int> > Print(TreeNode* pRoot) { queue<TreeNode*> q; vector<vector<int> > ret; if(pRoot==NULL) return ret; q.push(pRoot); helper(ret,q); return ret; } void helper(vector<vector<int> > &ret,queue<TreeNode*> &q){ while(!q.empty()){ vector<int> path; int n=q.size(); int i=0; while(i<n){ TreeNode* temp=q.front(); path.push_back(temp->val); if(temp->left) q.push(temp->left); if(temp->right) q.push(temp->right); q.pop(); i++; } ret.push_back(path); } } };
相关文章推荐
- 如何解决 "This function or variable may be unsafe" 的问题
- JavaScript正则表达式下之相关方法
- Caffe中卷基层和全连接层训练参数个数如何确定
- html表单
- javascript 访问对象属性
- css清理浮动
- javascript语法之Date对象与小案例
- js页面刷新的几种方法
- "undefined reference to" 问题解决方法
- javascript for...in 和 for of区别
- 用Jsoup实现html中标签替换
- 安卓数据存储困惑
- 【jQuery】鼠标进入\离开操作实现div显示\隐藏
- 推荐一款cpp解析json工具--rapidjson
- JavaScript:RegExp类型
- angular - filter(自定义)
- JavaScript正则表达式上之基本语法(推荐)
- js 怎样缓存数据【整理】
- JSP实现用户登录、注册和退出功能
- 在前台利用jquery对dom元素进行排序