[剑指Offer] 59.按之字形顺序打印二叉树
题目描述
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
【思路】先按层次遍历存入,通过设立标志位,将偶数层翻转。
1 /* 2 struct TreeNode { 3 int val; 4 struct TreeNode *left; 5 struct TreeNode *right; 6 TreeNode(int x) : 7 val(x), left(NULL), right(NULL) { 8 } 9 }; 10 */ 11 class Solution 12 { 13 public: 14 vector<vector<int> > Print(TreeNode* pRoot) 15 { 16 vector<vector<int> > res; 17 if(pRoot == NULL) 18 return res; 19 queue<TreeNode*> Que; 20 Que.push(pRoot); 21 bool flag = false; 22 while(!Que.empty()) 23 { 24 vector<int> vec; 25 int size = Que.size(); 26 for(int i = 0; i < size; i ++) 27 { 28 TreeNode* temp = Que.front(); 29 vec.push_back(temp->val); 30 if(temp->left) 31 Que.push(temp->left); 32 if(temp->right) 33 Que.push(temp->right); 34 Que.pop(); 35 } 36 if(flag) 37 std::reverse(vec.begin(),vec.end()); 38 flag = !flag; 39 res.push_back(vec); 40 } 41 return res; 42 } 43 44 };
转载于:https://www.cnblogs.com/lca1826/p/6574089.html
[剑指Offer] 59.按之字形顺序打印二叉树相关推荐
- 剑指 Offer 32 . 从上到下打印二叉树
main函数测试代码: 按标准输入输出,比如输入: 3,9,20,null,null,15,7 public static void main(String[] args) {//输入3,9,20,n ...
- 剑指offer 32. 从上到下打印二叉树
声明:本系列博客是对何海涛<剑指offer>的关键点总结. 1.不分行从上到下打印二叉树 1.1. 问题描述 从上到下打印出二叉树的每一个结点,同一层的结点按照从左到右的顺序打印. 如二叉 ...
- 剑指offer之从上到下打印二叉树
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7], 返回: [3,9,20,15,7] 来源:力扣(LeetC ...
- 剑指offer——32.从上到下打印二叉树
题目: 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 知识点: 像这种不是按照指针顺序打印的都需要引入辅助空间,由于分析可知,先进先出,因此我们引入了两端都可进出的队列deque,常用操作, ...
- 《剑指offer》从上往下打印二叉树
题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印. 解析:此题利用队列可以很好的解决层次打印,只需要按顺序入队以及出队就可以了(一点说明:root为null的时候需要考虑,java中的队列是 ...
- 剑指offer:从上往下打印二叉树
文章目录 分析 来源 分析 思路 典型的bfs模板题,这里使用STL中的queue,没用数组模拟队列. STL的思路:初始化队列时,根root入队:对于bfs主体过程while循环内,取队头元素,队头 ...
- 《剑指offer》-- 从上往下打印二叉树、二叉搜素树的后序遍历、二叉树中和为某一值的路径、二叉树与双向链表
一.从上往下打印二叉树: 1.题目: 上往下打印出二叉树的每个节点,同层节点从左至右打印. 2.解题思路: 用arraylist模拟一个队列来存储相应的TreeNode. 3.代码实现: public ...
- 剑指offer之先序非递归打印二叉树
1 问题 先序非递归打印二叉树 比如二叉树如下 * 2* 3 5 * 1 4 2 3 * 3 2 1 5 1 4 2 3 先序原则:中左右打印节点,如果左边有节点继续要打做节点,打印会是如下结果 2 ...
- 剑指Offer之从上往下打印二叉树
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 解题思路 二叉树的层次遍历,水题...有一个坑:如果root是空的,直接返回空vector,一定要注意边界条件!!!!!!!!! AC ...
最新文章
- 洛古 P1373 小a和uim之大逃离
- USNews 2020美国大学排名公布:UCLA超越伯克利;计算机专业MIT第一,斯坦福跌出前四...
- 【Android 逆向】ART 脱壳 ( DexClassLoader 脱壳 | exec_utils.cc 中执行 Dex 编译为 Oat 文件的 Exec 和 ExecAndReturnC函数 )
- 我也来说说js的事件机制
- SAP收购sysbase
- 【常见笔试面试算法题12续集三】动态规划算法案例分析3 LIS练习题(最长上升子序列)
- Java 10 常用集合继承关系图
- vue怎么使用php调取数据,vue 数据操作
- 解决172.17 或者172.18 机房环境下harbor服务器不通的问题
- 浏览器占满整个屏幕_浏览器无法最大化 为什么我的IE浏览器最大化时,会铺满整个电脑屏...
- 把复杂变简单,能产生颠覆的力量
- SQL学习笔记四之MySQL数据操作
- docfx daylybuild
- 树莓派3B通过mentohust登录锐捷校园网有线端,并创建WIFI(开热点)供其他设备使用,同时实现开机自启动
- B站批量下载工具——下载姬
- System.setOut()重定向输出解释
- LeetCode - 807. 保持城市天际线 - Java
- 全美航班停飞原因曝光/ 米哈游辟谣年终奖108薪/ 苹果正开发触摸屏Mac…今日更多新鲜事在此...
- 【小沐学qt】生成二维码
- Aurora 8b/10b 协议和IP核设置
热门文章
- winform_界面美化设计_显示/隐藏侧边栏
- g++ 安装python_mac编译安装faiss
- bootstrap五星评分_星型打分插件 bootstrap-rating-input
- 强化学习ppt_机器学习原理、算法与应用配套PPT第四部分(深度学习概论、自动编码器、强化学习、聚类算法、半监督学习等)...
- 退出页面 数据保留_设计师常用的数据分析指标
- js php 获取时间倒计时_,js实现倒计时及时间对象
- 小学教师计算机国培培训总结,小学教师国培个人研修总结
- python开发环境和运行环境的区别_Django 开发环境与生产环境的区分详解
- C++对象模型4——多重继承的对象内存模型、vptr与vtbl的创建与重置的时机、不要在含有虚函数的类的构造函数中调用memset
- C++保存不同的图片格式