• 题目描述:
    给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)
  • 提示:
    数据范围:0 ≤ n ≤ 1500,树上每个节点的val满足 ∣val∣<= 1500
    要求:空间复杂度:O(n),时间复杂度:O(n)
  • 代码实现:
public class Solution {public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {if(pRoot == null) return new ArrayList<ArrayList<Integer>>();ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();Queue<TreeNode> queue = new LinkedList<>();queue.offer(pRoot);int flag = 1;Stack<TreeNode> stack = new Stack<>();while(!queue.isEmpty()){ArrayList<Integer> tmp = new ArrayList<Integer>();int len = queue.size();for(int i=0; i<len; i++){pRoot = queue.poll();tmp.add(pRoot.val);if(flag % 2 == 1){if(pRoot.left != null) stack.push(pRoot.left);if(pRoot.right != null) stack.push(pRoot.right);}else{if(pRoot.right != null) stack.push(pRoot.right);if(pRoot.left != null) stack.push(pRoot.left);}}while(!stack.isEmpty()){queue.offer(stack.pop());}result.add(tmp);flag++;}return result;}
}

编程题009--按之字形顺序打印二叉树--niuke相关推荐

  1. 剑指offer——面试题61:按之字形顺序打印二叉树

    剑指offer--面试题61:按之字形顺序打印二叉树 Solution1: 基于上一题的解法,缺点:效率低下! /* struct TreeNode {int val;struct TreeNode ...

  2. java面试(二十六)--(1)J2EE中常用名词(2)讲一下redis的主从复制怎么做的?(3)请谈谈你对Javaweb开发中的监听器的理解?(4)按之字形顺序打印二叉树(5)内部类大全

    1.J2EE中常用名词 web容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使 JSP,SERVLET直接跟容器中的环境变量接**互,不必关注其它系统问题.主要有WEB服务器来 ...

  3. 按之字形顺序打印二叉树

    题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. 此道题目可以跟  把二叉树打印成多行:htt ...

  4. 打印list_按之字形顺序打印二叉树

    题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. 解题思路及代码 这题是 LiShun:把二叉 ...

  5. 剑指offer(C++)-JZ77:按之字形顺序打印二叉树(数据结构-树)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直 ...

  6. (剑指Offer)面试题61:按之字形顺序打印二叉树

    题目: 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. 思路: 按照广度优先遍历来遍历二叉树,但是需要 ...

  7. [剑指Offer] 59.按之字形顺序打印二叉树

    题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. [思路]先按层次遍历存入,通过设立标志位,将 ...

  8. 剑指Offer(Java实现)按之字形顺序打印二叉树

    题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. 解题思路 方法一:利用两个栈的辅助空间分别存 ...

  9. 剑指offer-按之字形顺序打印二叉树

    题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. 使用双向链表,先把当前行按顺序打印,再取出当 ...

最新文章

  1. 2018-3-21李宏毅机器学习视频笔记(十三)--“Hello Wrold” of Deep learning
  2. R语言基于多字段(多数据列、multiple columns)对dataframe的行数据进行排序(Ordering rows)实战:使用R原生方法、data.table、dplyr等方案
  3. EXP-00091错误的说明和解决方法
  4. MS SQL Server存储过程
  5. 阻止路由跳转得方式_vue路由拦截及页面跳转的设置方法
  6. 线程池ThreadPool知识碎片和使用经验速记
  7. 设计模式 — 行为型模式 — 访问者模式
  8. c++中类的构造函数的初始化成员列表详解
  9. 2013年最 “酷”科技产品回顾
  10. 关于删除数据仓库的数据
  11. HDU - 3026 Chinese Chess(二分图的必经边)
  12. Rolling element bearing diagnostics using the Case Western Reserve University data-学习笔记
  13. xfce不小心禁用了鼠标
  14. python local variable 'xxx' referenced before assignment
  15. 美国的时间格式 -- 复杂格式的日期转换 使用Date.parse(“复杂的格式”)方法。
  16. 名企架构师的心声:让我一次“架”个“构”
  17. 打怪升级的monteCarlo仿真方法
  18. windows服务定时重启软件的实现
  19. myeclipse 10破解
  20. 区块链通证经济——资产流动性的变革

热门文章

  1. 网络信息安全对抗(北京邮电大学版)考点总结
  2. 2022深圳国际电子设备及检测仪器展览会
  3. 智慧物业综合解决方案
  4. 使用python将PDF拆分成图片
  5. html5坦克大战游戏,HTML5游戏《坦克大战》完整源码
  6. ganache 安装
  7. 护理专业计算机课程,护理专业主修课程
  8. Python xlrd读取Excel背景色
  9. Kong——Proxy文档
  10. vmware intel-vt