首页 > 其他分享 >LeetCode 103_ 二叉树的锯齿形层序遍历

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

时间:2023-01-07 14:57:08浏览次数:39  
标签:遍历 res 层序 add que 二叉树 103 null root

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

题目

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

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

示例 2:
输入:root = [1]
输出:[[1]]

示例 3:
输入:root = []
输出:[]

思路

树的层序遍历,使用双端队列,可以从队尾或队头存入元素

代码

class Solution {
    public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
        List<List<Integer>> res=new ArrayList<>();
        if(root==null)
        return res;
        Queue<TreeNode> que=new LinkedList<TreeNode>();
        que.add(root);
        while(!que.isEmpty())
        {
            List<Integer> l=new ArrayList<>();
            int count=que.size();
            while(count>0)
            {
                TreeNode t=que.poll();
                if(res.size()%2==0)
                l.add(t.val);
                else
                l.add(0,t.val);
    
                if(t.left!=null)
                que.add(t.left);
                if(t.right!=null)
                que.add(t.right);
                count--;
            }
            res.add(l);
        }
        return res;
    }
}

反思

①可以通过res的大小判断当前遍历的层数
②创建队列的语句:Queue que=new LinkedList();

标签:遍历,res,层序,add,que,二叉树,103,null,root
From: https://www.cnblogs.com/Janecodehouse/p/17032623.html

相关文章

  • CF1032C Playing Piano
    CF1032CPlayingPiano-洛谷|计算机科学教育新生态(luogu.com.cn)。题目大意是:能否构造一个长度为\(n\)的值域为\([1,5]\)的整数序列,使得相邻两个数之间的大小......
  • 102. 二叉树的层序遍历
    102.二叉树的层序遍历{学会层序遍历,直接打十个!!}难度中等1542收藏分享切换为英文接收动态反馈给你二叉树的根节点root,返回其节点值的层序遍历。(即逐层地,从左到右访......
  • 二叉树的统一迭代法
    二叉树的统一迭代法要想统一写法就要:将访问的节点放入栈中,把要处理的节点也放入栈中但是要做标记。如何标记呢,就是要处理的节点放入栈之后,紧接着放入一个空指针作为标记......
  • STM32F103 Proteus 仿真 编译用GCC
    原理图只要一个MCU就可以了,双击MCU,编辑固件,选择GCCforARM,由模板创建默认工程。会遇到两个错误:  1.STM32GCCARM编译_STATIC_INLINE出错,     在第一个......
  • 144. 二叉树的前序遍历
    144.二叉树的前序遍历难度简单965收藏分享切换为英文接收动态反馈给你二叉树的根节点root,返回它节点值的前序遍历。示例1:输入:root=[1,null,2,3]输出:[1,2,3]......
  • 144. 二叉树的前序遍历
    144.二叉树的前序遍历难度简单965收藏分享切换为英文接收动态反馈给你二叉树的根节点root,返回它节点值的前序遍历。示例1:输入:root=[1,null,2,3]输出:[1,2,3]......
  • 145. 二叉树的后序遍历
    145.二叉树的后序遍历难度简单965收藏分享切换为英文接收动态反馈给你一棵二叉树的根节点root,返回其节点值的后序遍历。示例1:输入:root=[1,null,2,3]输出:[3,2......
  • 94. 二叉树的中序遍历
    94.二叉树的中序遍历难度简单1649收藏分享切换为英文接收动态反馈给定一个二叉树的根节点root,返回它的中序遍历。示例1:输入:root=[1,null,2,3]输出:[1,3,2]......
  • 每日算法之二叉树中和为某一值的路径(三)
    JZ84二叉树中和为某一值的路径(三)题目给定一个二叉树root和一个整数值sum,求该树有多少路径的的节点值之和等于sum。1.该题路径定义不需要从根节点开始,也不需要在......
  • 力扣144 94 145 二叉树的前中后序遍历
    递归三要素:(1)确定递归函数的参数和返回值:确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数,并且还要明确每次递归的返回值是什么进而确定递归函数......