题目:给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)。

思路:此题是层序遍历基础的不断演化。首先是写入层序遍历的代码:利用队列。然后通过count变量控制每次循环的次数,从而将每层的数据都分别保存到一个list上,最后引入一个num标志位,来控制奇偶层,如果为奇数层list顺序不变,如果是偶数层就将链表list中的数据反转。

import java.util.*;
import java.util.ArrayList;/*
public class TreeNode {int val = 0;TreeNode left = null;TreeNode right = null;public TreeNode(int val) {this.val = val;}}
*/
public class Solution {public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {if(pRoot == null) return new ArrayList();Queue<TreeNode> queue = new LinkedList();ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();queue.add(pRoot);int num = 1;while(!queue.isEmpty()){ArrayList<Integer> list = new ArrayList();int count = queue.size();for(int i=0;i<count;i++){TreeNode node = queue.remove();if(node.left != null){queue.add(node.left);}if(node.right != null){queue.add(node.right);}list.add(node.val);   }if(num%2==0){for(int m=0,n=list.size()-1;m<n;m++,n--){int tmp = list.get(m);list.set(m,list.get(n));list.set(n,tmp);}}num++;res.add(list);}return res;}}

26.按之字形顺序打印二叉树相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. NSDate NSCalendar NSString之间的故事以及转换
  2. Wince 添加中文字库
  3. Metrics.NET 项目
  4. vscode添加源文件_VSCode自制的IDE编译多个源文件
  5. BZOJ 4242 水壶(BFS建图+最小生成树+树上倍增)
  6. UI设计师遇到瓶颈如何自我提升?
  7. BP神经网络算法:将参数矩阵向量化
  8. 由System.getProperty(user.dir)引发的联想
  9. python邮件发送脚本
  10. python 模型 欺诈概率_手把手教你使用Python实战反欺诈模型|原理+代码
  11. 微信小游戏代码热更(转载)
  12. Python 实现Mac 屏幕截图
  13. 用python算股票β系数_请教达人:Stata中计算多只股票月度beta系数的do文件怎么编写?...
  14. shiro加盐走源码
  15. 计算机网络中速率(date rate)和带宽的区别
  16. 简述dijkstra算法原理_理解最短路径——迪杰斯特拉(dijkstra)算法
  17. MTK Android部分配置修改
  18. iOS及Mac开源项目和学习资料
  19. Linux网卡配置文件详解:
  20. 【215】第K个大的数,K相关题目-分治、堆应用

热门文章

  1. 蓝屏代码: DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS bootsafe64.sys
  2. 计算机专业jsp项目,可练手
  3. python 将输出打印到文件
  4. orcad capture学习笔记---3.DRC规则设置及检查
  5. FX5u控制4个伺服,一个完整的项目 回原点、JOG手动、绝对定位、相对定位、控制等部分
  6. 《深度学习入门 基于Python的理论与实现》书中代码笔记
  7. 使用Cydia Impactor免越狱安装ipa
  8. React 项目配置 Win10 WSL
  9. 计算机方面的文献在哪里找,最新浅谈计算机参考文献 浅谈计算机专著类参考文献哪里找...
  10. python corrupt extra field_英语专四dictation模拟练习-沪江英语