2024.2.16力扣每日一题——二叉树的锯齿形层序遍历

题目来源

力扣每日一题;题序:103

我的题解

方法一 双端队列+标志

层序遍历 利用双端队列和标志,判断当前应该往那个方向遍历
注意:在逆向遍历时,加入后续节点到队列中的顺序需要改变

时间复杂度:O(N),其中 N 为二叉树的节点数。每个节点会且仅会被遍历一次。
空间复杂度:O(N)。需要维护存储节点的队列和存储节点值的双端队列,空间复杂度为 O(N)。

public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
    List<List<Integer>> res=new ArrayList<>();
    if(root==null)
        return res;
    LinkedList<TreeNode> queue=new LinkedList<>();
    queue.addFirst(root);
    boolean flag=false;//false表示从右到左,true表示从左到右
    while(!queue.isEmpty()){
        int sz=queue.size();
        List<Integer> list=new ArrayList<>();
        for(int i=0;i<sz;i++){
            //从右到左
            if(!flag){
                TreeNode t=queue.pollLast();
                list.add(t.val);
                if(t.left!=null)
                    queue.addFirst(t.left);
                if(t.right!=null)
                    queue.addFirst(t.right);
            //从左到右
            }else{
                TreeNode t=queue.pollFirst();
                list.add(t.val);
                //注意存入的顺序需要改变
                if(t.right!=null)
                    queue.addLast(t.right);
                if(t.left!=null)
                    queue.addLast(t.left);
                
                
            }
        }
        flag=!flag;
        res.add(list);
    }
    return res;
}

有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~

相关推荐

  1. 练习】103. 锯齿

    2024-04-02 05:40:05       71 阅读
  2. 【C++】每日 103 锯齿

    2024-04-02 05:40:05       34 阅读
  3. 103. 锯齿

    2024-04-02 05:40:05       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-02 05:40:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-02 05:40:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-02 05:40:05       82 阅读
  4. Python语言-面向对象

    2024-04-02 05:40:05       91 阅读

热门阅读

  1. wpf ContextMenu

    2024-04-02 05:40:05       36 阅读
  2. HarmonyOS Connect生态设备UX体验设计

    2024-04-02 05:40:05       41 阅读
  3. 邦芒面试:面试中如何巧妙应对“缺点”提问

    2024-04-02 05:40:05       36 阅读
  4. cpu与缓存的关系

    2024-04-02 05:40:05       33 阅读
  5. macOS上QT打开麦克风和摄像头的权限问题

    2024-04-02 05:40:05       41 阅读
  6. 第22章-路由协议概述

    2024-04-02 05:40:05       30 阅读