当前位置: 首页 > news >正文

[leetcode] 103. 二叉树的锯齿形层次遍历

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

按题号刷的优势体现出来了2333333

这题实际上就是上个题102. 二叉树的层次遍历的演变,把上个题结果的偶数行list反转一下即可。。

上题通过人数10k+,这个题才3k,我想这题不经过上题思路的引导很容易思路被带弯把

class Solution {
    public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
        List<List<Integer>> lists = levelOrder(root);

        boolean flag = false;
        for (List<Integer> list : lists) {
            if (flag)
                Collections.reverse(list);
            flag = !flag;
        }

        return lists;
    }

    public List<List<Integer>> levelOrder(TreeNode root) {
        List<List<Integer>> list = new ArrayList<>();
        if (root == null) return list;
        LinkedList<TreeNode> queue = new LinkedList<>();
        queue.offer(root);

        TreeNode flag = root;
        List<Integer> nowNumList = new ArrayList<>();
        list.add(nowNumList);

        while (!queue.isEmpty()) {
            TreeNode nowNode = queue.poll();
            nowNumList.add(nowNode.val);

            TreeNode sonNode = nowNode.left;
            if (sonNode != null) queue.offer(sonNode);

            sonNode = nowNode.right;
            if (sonNode != null) queue.offer(sonNode);

            if (flag == nowNode && !queue.isEmpty()) {
                nowNumList = new ArrayList<>();
                list.add(nowNumList);
                flag = queue.peekLast();
            }
        }
        return list;
    }
}

转载于:https://www.cnblogs.com/acbingo/p/9917309.html

相关文章:

  • ArcGIS Server 开发系列(一)--编程框架总览
  • LRUCache
  • Hello, world!
  • Git 更改远程地址
  • 三十岁前不要去在乎的29件事
  • 转:面对一个全新的环境,作为一个Oracle DBA,首先应该了解什么
  • 什么是I2C管理总线
  • Java多线程系列---“JUC锁”03之 Condition
  • Junit Test 的时候出错java.lang.IllegalStateException: Failed to load ApplicationContext
  • 小教练教MM如何去掉你的小肚子
  • vue cli 3 webpack-merge webpack 3 bug
  • 一句话介绍python线程、进程和协程
  • ASP.NET中上传并读取Excel文件数据
  • 在 ISA Server 2004 中发布 ××× 服务器
  • Linux Command
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 08.Android之View事件问题
  • exports和module.exports
  • JavaScript中的对象个人分享
  • Laravel5.4 Queues队列学习
  • MySQL数据库运维之数据恢复
  • Next.js之基础概念(二)
  • npx命令介绍
  • Python语法速览与机器学习开发环境搭建
  • vue:响应原理
  • 如何在 Tornado 中实现 Middleware
  • 使用SAX解析XML
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • 7行Python代码的人脸识别
  • mysql面试题分组并合并列
  • Nginx实现动静分离
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (52)只出现一次的数字III
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (简单) HDU 2612 Find a way,BFS。
  • (新)网络工程师考点串讲与真题详解
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET 4.0中的泛型协变和反变
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .Net6 Api Swagger配置
  • /bin、/sbin、/usr/bin、/usr/sbin
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116
  • []利用定点式具实现:文件读取,完成不同进制之间的
  • [20180129]bash显示path环境变量.txt