面试算法-66-二叉树的层序遍历

题目

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。

示例 1:

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

输出:[[3],[9,20],[15,7]]

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

        LinkedList<TreeNode> queue = new LinkedList<>();
        LinkedList<TreeNode> queue2 = new LinkedList<>();
        queue.offer(root);
        List<Integer> res = new ArrayList<>();
        while (!queue.isEmpty()) {
            TreeNode poll = queue.poll();
            res.add(poll.val);
            if (poll.left != null) {
                queue2.offer(poll.left);
            }
            if (poll.right != null) {
                queue2.offer(poll.right);
            }
            if (queue.isEmpty()) {
                result.add(res);
                res = new ArrayList<>();
                queue = queue2;
                queue2 = new LinkedList<>();
            }
        }
        return result;
    }
}
相关推荐
勇敢滴勇21 分钟前
【排序算法】插入排序_直接插入排序、希尔排序
c语言·数据结构·算法·排序算法
简单.is.good1 小时前
[leetcode]62_不同路径_无障碍版本
算法·leetcode
Mephisto.java1 小时前
【数据结构与算法 | 灵神题单 | 栈基础篇】力扣155, 1472, 1381
java·算法·leetcode
Navigator_Z2 小时前
LeetCode //C - 382. Linked List Random Node
c语言·算法·leetcode
张三xy2 小时前
数据结构 第三章 栈和队列 练习题3.2.4 迷宫求解 C语言代码
c语言·数据结构·算法
Pandaconda2 小时前
【计算机网络 - 基础问题】每日 3 题(十八)
开发语言·经验分享·笔记·后端·计算机网络·面试·职场和发展
misty youth2 小时前
有理数四则运算
c语言·数据结构·算法·c#
程序员波特2 小时前
基础数据结构之数组
java·数据结构·算法·leetcode
i嗑盐の小F3 小时前
【IEEE 独立出版,快速EI检索】第四届人工智能、虚拟现实与可视化国际学术会议(AIVRV 2024)
大数据·人工智能·深度学习·算法·机器学习·vr
小灰灰爱代码8 小时前
C++——将数组a[5]={-1,2,9,-5,7}中小于0的元素置成0。并将其结果输出(要求:用数组名作为函数的参数来实现)
数据结构·c++·算法