1、题目描述

给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。

例如:
给定二叉树 [3,9,20,null,null,15,7],

    3/ \9  20/  \15   7

返回锯齿形层次遍历如下:

[[3],[20,9],[15,7]
]

2、解题

使用二叉树的层次遍历即可

public List<List<Integer>> zigzagLevelOrder(TreeNode root) {List<List<Integer>> res = new ArrayList<List<Integer>>() ;if(root == null) {return res;}LinkedList<TreeNode> queue = new LinkedList<TreeNode>();queue.push(root);//true:从右往左, false:从左往右boolean flag = false;while(!queue.isEmpty()) {int levelSize = queue.size();List<Integer> list = new ArrayList<Integer>(levelSize);while(levelSize-- > 0) {TreeNode curNode = queue.poll();list.add(curNode.val);if(curNode.left != null) {queue.offer(curNode.left);}if(curNode.right != null) {queue.offer(curNode.right);}}if(flag && list.size()>1) {//需要翻转数组Collections.reverse(list);}flag = !flag;res.add(list);}return res;}

二叉树的锯齿形层次遍历相关推荐

  1. lintcode二叉树的锯齿形层次遍历 (双端队列)

    题目链接: http://www.lintcode.com/zh-cn/problem/binary-tree-zigzag-level-order-traversal/ 二叉树的锯齿形层次遍历 给出 ...

  2. 103. 二叉树的锯齿形层次遍历/102. 二叉树的层序遍历

    2020-05-24 1.题目描述 二叉树的锯齿形层次遍历 2.题解 对于层次遍历而言,就是广度优先,由于题目要求奇数层逆序,我们可以 1)使用双端队列,奇偶性不同,则出入队列方式不同. 2)对于偶数 ...

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

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

  4. 【Leetcode】103. 二叉树的锯齿形层次遍历

    题目 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 ...

  5. 【LeetCode】103# 二叉树的锯齿形层次遍历

    题目描述 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], ...

  6. 二叉树的锯齿形层次遍历—leetcode103

    给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], 3/ \ ...

  7. 103. 二叉树的锯齿形层次遍历

    给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], 3   ...

  8. leetcode103. 二叉树的锯齿形层次遍历(bfs)

    给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行).例如: 给定二叉树 [3,9,20,null,null,15,7],3/ \9 ...

  9. leetcode103. 二叉树的锯齿形层次遍历

    给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], 3   ...

最新文章

  1. php调用for循环函数吗,我需要将“函数”与“for循环”结合使用php
  2. vue Mutation 必须是同步函数 为什么_Vue 开发必须知道的 36 个技巧「近1W字」
  3. 自言自语(2011.8.1)
  4. 安卓学习日记:初识Android Studio · java环境配置和AS安装
  5. 【hihocoder 1312】搜索三·启发式搜索(启发式搜索写法)
  6. 算力至上?AI芯片大对决
  7. alibaba 实体转json_JAVA中使用alibaba fastjson实现JSONObject、Object、Json字符串的转换...
  8. 六石编程学:由库调用没测试到,谈工作粗糙
  9. Java学习笔记(05)
  10. Android 系统(44)---多语言
  11. 阿里内核月报2014年7月-8月
  12. 39岁阿里P9失业,资产1.5亿,北京4套房!职场人的离职悲喜各不相同
  13. 图像去模糊系列二 高斯白噪声
  14. 现在的BAT,就是曾经的外企
  15. go html vue,[终极巨坑]golang+vue开发日记【三】,登陆界面制作(二)
  16. Android 判断当前设备是手机还是平板
  17. windows 9X, 2000, xp所有版本注册表设置大全
  18. Lucas定理和拓展Lucas定理
  19. 环回接口是做什么的?
  20. 安全测试常用几个工具

热门文章

  1. mysql5.7 only_full_group_by_Mysql5.7及以上版本 ONLY_FULL_GROUP_BY报错的解决方法
  2. php的_auto,AutoPHPCheck下载
  3. python导入自定义模块_Python3 导入自定义的包
  4. 编写程序在窗口中写出自己名字的拼音缩写_各类英文缩写:全称居然这么朴素?网友:最后一个我笑了...
  5. foreach循环符合就不往下走了_柴油发电机组冷却液循环故障解决方法
  6. 耗时6年的DK博物科普巨著,全面提升孩子的认知高度
  7. 超好看的科学科普书,孩子大人都可以看!
  8. matlab如何求矩阵的转置矩阵,怎么用MATLAB程序求转置矩阵?急需,高手帮忙………………...
  9. bios是固定在微型计算机上的一块RoM,计算机硬件笔试试题
  10. 家用简单电线路图_家庭配电箱接线图解 家用配电箱安装方法