题目:

Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between).

For example:

Given binary tree [3,9,20,null,null,15,7],

3

/ \

9 20

/ \

15 7

return its zigzag level order traversal as:

[

[3],

[20,9],

[15,7]

]

题意及分析:给出一个横向遍历的二叉树,要求给出 按照Z字形横向遍历的每一层 的点。这道题我们可以用stack来求解,简单来讲就是把每一层添加到一个stack里面,然后遍历输出结果的同时将遍历点的子节点添加到一个新的stack里面(先添加左子节点还是右子节点根据上一层添加的顺序),遍历完之后将新的stack赋值给stack进行下一层的遍历。代码如下:

代码:

/**

* Definition for a binary tree node.

* public class TreeNode {

* int val;

* TreeNode left;

* TreeNode right;

* TreeNode(int x) { val = x; }

* }

*/

public class Solution {

public List> zigzagLevelOrder(TreeNode root) {

List> res=new ArrayList<>();

TreeNode node=root;

Stack stack =new Stack<>();

if(node!=null)

stack.push(node);

int leftOrRight=0;//0为先遍历左子树,1为右子树

while(!stack.isEmpty()){

Stack nextStack =new Stack<>();

List list=new ArrayList<>();

while(!stack.isEmpty()){

TreeNode temp=stack.pop();

list.add(temp.val);

if(leftOrRight==0){

if(temp.left!=null)

nextStack.push(temp.left);

if(temp.right!=null)

nextStack.push(temp.right);

}else{

if(temp.right!=null)

nextStack.push(temp.right);

if(temp.left!=null)

nextStack.push(temp.left);

}

}

if(leftOrRight==0)

leftOrRight=1;

else {

leftOrRight=0;

}

res.add(new ArrayList<>(list));

//System.out.println(list);

list.clear();

stack=(Stack) nextStack.clone ();;

nextStack.clear();

}

return res;

}

}

leetcode103JAVA_[LeetCode] 103. Binary Tree Zigzag Level Order Traversal Java相关推荐

  1. LeetCode 103. Binary Tree Zigzag Level Order Traversal

    LeetCode 103. Binary Tree Zigzag Level Order Traversal Solution1:基于层次遍历的微改 /*** Definition for a bin ...

  2. LeetCode: 103. Binary Tree Zigzag Level Order Traversal

    题目 Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left ...

  3. [leetcode] 103. Binary Tree Zigzag Level Order Traversal @ python

    原题 Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left ...

  4. 【Breadth-first Search 】103. Binary Tree Zigzag Level Order Traversal

    输入:一颗二叉树 输出:这棵树的之字形层次遍历. 规则:之字形层次遍历是指第一层从左到右遍历,第二层从右到左遍历. 分析:这与102的区别就是有从左到右,从右到左遍历的交替过程.我们习惯从左到右遍历. ...

  5. LeetCode 103. 二叉树的锯齿形层次遍历(Binary Tree Zigzag Level Order Traversal)

    103. 二叉树的锯齿形层次遍历 103. Binary Tree Zigzag Level Order Traversal 题目描述 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再 ...

  6. leetcode【102,103】Binary Tree Level Order Traversal Binary Tree Zigzag Level Order Traversal

    问题描述(102): Given a binary tree, return the level order traversal of its nodes' values. (ie, from lef ...

  7. Binary Tree Zigzag Level Order Traversal

    跟之前的解法一模一样Binary Tree Level Order Traversal I,II  不赘述 public class Solution {public ArrayList<Arr ...

  8. leetcode第一刷_Binary Tree Zigzag Level Order Traversal

    以出现的频率来看.树的层序遍历一定是考察的重点,除非工作人员想找题水数量. zigzag,还是有几道题的,层序的这个非常easy,假设是奇数层.reverse下面就可以.无他.我写的时候预计还不知道这 ...

  9. LeetCode: 107. Binary Tree Level Order Traversal II

    题目 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from l ...

最新文章

  1. 数据结构与算法(7-3)最小生成树(普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法)
  2. 嵌入式CGI开发之旅——CGI环境变量
  3. 使用Slf4j集成Log4j2构建项目日志系统的完美解决方案
  4. Python.Scrapy.12-scrapy-source-code-analysis-part-2
  5. 5 个最受人喜爱的开源 Django 包
  6. mysql中整理设置__MySQL整理
  7. linux基础简介,Linux简介基础
  8. ffmpeg的学习-00
  9. 5分钟搞定AlertManager接入短信、语音等10+种通知渠道
  10. python文件,字符串,二进制的读写
  11. typedef用法总结(一)
  12. html限制显示字数其余用...代替,html实现钝角效果;html实现限制一行字数的显示,超出的部分用省略号(....)来代替...
  13. bootstrap有哪些常用组件
  14. 国际象棋游戏测试软件,Fritz国际象棋测试_CPUCPU评测-中关村在线
  15. MacOS上如何将MOV文件转换为MP4
  16. win7 SP1 64位 原版 百度网盘下载
  17. matlab2016 wavread,matlab 7.10里面的wavread函数不能打开.wav文件。我的wav文件是电脑自带的录音机录的...
  18. SOFA原理学习--sofa rpc入门示例
  19. JavaScript测试工具对决:Sinon.js vs testdouble.js
  20. 7个适合设计小白学的平面设计软件

热门文章

  1. mysql using btree_mysql导入数据时提示 USING BTREE 错误解决办法
  2. selenium+chromedriver爬取淘宝美食信息保存到MongoDB
  3. 转 linux常用查看硬件设备信息命令
  4. 博弈论 斯坦福game theory stanford week 5.0_
  5. 面试题----几种数组去重方式
  6. ndarray的数据类型
  7. SQL语句从入门到精通之笔记大全
  8. MHP GEM基础
  9. gnokii 短信猫 中文安装使用文档
  10. UA PHYS515A 电磁理论V 电磁波与辐射3 偏振