[剑指offer]按之字形顺序打印二叉树
2016-05-24 10:55
501 查看
题目描述
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。分析:其实和昨天做的层序遍历一样,只是加了判断在奇数层需要做一次反转。
代码:
/* 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) { vector<vector<int> > ret; if(pRoot==NULL) return ret; vector<int> path; queue<TreeNode*> q; q.push(pRoot); int count=0; while(!q.empty()){ int n=q.size(); int i=0; vector<int> path; while(i<n){ TreeNode* temp=q.front(); path.push_back(temp->val); q.pop(); if(temp->left) q.push(temp->left); if(temp->right) q.push(temp->right); i++; } if(count%2==1) reverse(path.begin(),path.end()); ret.push_back(path); count++; } return ret; } };
相关文章推荐
- 实现--计算当前天的n天前js
- JS特效之漂浮广告
- input-color与input-checkbox元素通过jquery获取值以及设定值(input属性的取值与设定)
- Html5实现用户注册自动校验功能实例代码
- react-native 的简介
- CSS之鼠标经过字体光标形状的改变
- 移动H5前端性能优化指南(网上整理)
- 环形缓冲区-boost circular buffer & 读写锁(shared_mutex)
- 《CSS入门经典》学习笔记
- 基于权重的随机数JS实现
- Extjs中grid 的ColumnModel 属性配置
- 常见中文字体英文名称以及windows默认字体列表
- Jquery元素追加和删除的实现方法
- jquery中attr和prop的区别
- [Effective JavaScript 笔记]第16条:避免使用eval创建局部变量
- 奇偶不同样式调取
- Node.Js上传图片
- 【leetcode】19. Remove Nth Node From End of List
- jquery html动态添加的元素绑定事件详解
- 请问如何修改jeecms后台管理系统中的下一页的js中的跳转路径