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

LeetCode:103. 二叉树的锯齿形层序遍历

目录

题目描述:

代码:


这个与二叉树的层序遍历有点类似

题目描述:

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

示例 1:

输入:root = [3,9,20,null,null,15,7]
输出:[[3],[20,9],[15,7]]

示例 2:

输入:root = [1]
输出:[[1]]

示例 3:

输入:root = []
输出:[]

代码:

   public List<List<Integer>> zigzaLevelOrder(TreeNode root) {
        List<List<Integer>> res = new ArrayList<>();
        if (root == null) return res;
        LinkedListQueue<TreeNode> queue = new LinkedListQueue<TreeNode>();//单向环形哨兵链表
        queue.offer(root);
        int c1 = 1;//当前的节点数
        boolean odd = true;//奇数层
        while (!queue.isEmpty()) {
            LinkedList<Integer> level = new LinkedList<>();//每一层的节点  jdk自带的
            int c2 = 0;
            for (int i = 0; i < c1; i++) {
                TreeNode n = queue.poll();
               if(odd){  //奇数层从左到右
                   level.offerLast(n.val);//尾部插入
               }else{//偶数层从右到左
                   level.offerFirst(n.val);//头部插入
               }
                if (n.left != null) {
                    queue.offer(n.left);
                    c2++;
                }
                if (n.right != null) {
                    queue.offer(n.right);
                    c2++;
                }
            }
            odd = !odd;//取反
            res.add(level);
            c1 = c2;

        }
        return res;
    }


http://www.kler.cn/a/391591.html

相关文章:

  • CommandLineParser 使用
  • K8s进阶使用
  • Mit6.S081-实验环境搭建
  • 【AI大模型】ELMo模型介绍:深度理解语言模型的嵌入艺术
  • 学Linux的第八天
  • 定时器(QTimer)与随机数生成器(QRandomGenerator)的应用实践——Qt(C++)
  • 2024-11-13 Unity Addressables1——概述与导入
  • Flink Source 详解
  • 成都睿明智科技有限公司解锁抖音电商新玩法
  • 计算器上的MC、MR、M+、M—、CE是什么意思?
  • 正向代理服务器
  • TP6将HTML转换为PDF文件,非法UTF-8编码和中文乱码问题
  • 品融电商:新形势下电商平台如何助力品牌长期经营
  • Openstack7--安装消息队列服务RabbitMQ
  • 【C语言】程序性能优化——除法运算符
  • 设计一致性的关键:掌握 Axure 母版使用技巧
  • 框架学习03-Spring 七大核心模块
  • 机器学习—神经网络的Softmax输出
  • “K线剩余时间”,显示当前K线已用和剩余时间 +品种信息面板 MT4免费工具!
  • MDBook 使用指南
  • Serverless GPU:助力 AI 推理加速
  • 常见error集合
  • RDD 算子全面解析:从基础到进阶与面试要点
  • 最新7+非肿瘤生信,机器学习筛选关键基因+样本验证。目前机器学习已经替代WGCNA成为筛选关键基因方法。非肿瘤生信分析欢迎咨询!
  • 期权懂|期权市场的发展对于投资者有什么影响?
  • AI写作(二)NLP:开启自然语言处理的奇妙之旅(2/10)