Java | Leetcode Java题解之第103题二叉树的锯齿形层序遍历

题目:

题解:

java 复制代码
class Solution {
    public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
        List<List<Integer>> ans = new LinkedList<List<Integer>>();
        if (root == null) {
            return ans;
        }

        Queue<TreeNode> nodeQueue = new ArrayDeque<TreeNode>();
        nodeQueue.offer(root);
        boolean isOrderLeft = true;

        while (!nodeQueue.isEmpty()) {
            Deque<Integer> levelList = new LinkedList<Integer>();
            int size = nodeQueue.size();
            for (int i = 0; i < size; ++i) {
                TreeNode curNode = nodeQueue.poll();
                if (isOrderLeft) {
                    levelList.offerLast(curNode.val);
                } else {
                    levelList.offerFirst(curNode.val);
                }
                if (curNode.left != null) {
                    nodeQueue.offer(curNode.left);
                }
                if (curNode.right != null) {
                    nodeQueue.offer(curNode.right);
                }
            }
            ans.add(new LinkedList<Integer>(levelList));
            isOrderLeft = !isOrderLeft;
        }

        return ans;
    }
}
相关推荐
shark-chili16 小时前
从操作系统底层浅谈程序栈的高效性
java
不知疲倦的仄仄17 小时前
第二天:深入理解 Selector:单线程高效管理多个 Channel
java·nio
期待のcode17 小时前
Java虚拟机栈
java·开发语言·jvm
珂朵莉MM17 小时前
全球校园人工智能算法精英大赛-产业命题赛-算法巅峰赛 2025年度画像
java·人工智能·算法·机器人
芒克芒克17 小时前
本地部署SpringBoot项目
java·spring boot·spring
cute_ming17 小时前
关于基于nodeMap重构DOM的最佳实践
java·javascript·重构
Morwit17 小时前
*【力扣hot100】 647. 回文子串
c++·算法·leetcode
sww_102617 小时前
Netty原理分析
java·网络
小突突突17 小时前
Spring框架中的单例bean是线程安全的吗?
java·后端·spring
Mr.Entropy18 小时前
JdbcTemplate 性能好,但 Hibernate 生产力高。 如何选择?
java·后端·hibernate