codeTop102:二叉树的层序遍历

前言

在已知BFS的方式后,知道每次从队列中取一个节点,就要将这个节点的所有子节点按照顺序放入队列。

难点在于怎么确定将同一层的节点放在一个数组里面的输出,也就是输出一个二维数组?

解决方法:

每次while循环将队列上轮放入的节点全部取出(之前的普通BFS是每次whie循环只取一个节点)。

java 复制代码
 public  List<List<Integer>> levelOrder(TreeNode root) {
    List<List<Integer>> res = new ArrayList<>();
    if (root == null){
        return res;
    }
    Queue<TreeNode> queue = new LinkedList<>();
    queue.add(root);

    while (!queue.isEmpty()){

        int size = queue.size();
        List<Integer> temp = new ArrayList<>();
        for (int i = 0 ; i < size; i++ ){
            TreeNode target = queue.poll();
            temp.add(target.val);

            if (target.left != null){
                queue.add(target.left);
            }

            if (target.right != null){
                queue.add(target.right);
            }
        }

        res.add(temp);

    }

   return res;
}

相关推荐
熊文豪1 小时前
Windows安装RabbitMQ保姆级教程
windows·分布式·rabbitmq·安装rabbitmq
搬砖的小码农_Sky1 小时前
Windows操作系统上`ping`命令的用法详解
运维·网络·windows
Kiri霧8 小时前
Rust模式匹配详解
开发语言·windows·rust
程序设计实验室10 小时前
使用命令行删除 Windows 网络映射驱动器
windows
用户311879455921812 小时前
Windows 电脑安装 XTerminal 1.25.1 x64 版(带安装包下载关键词)
windows
Logintern0913 小时前
windows如何设置mongodb的副本集
数据库·windows·mongodb
Chandler2417 小时前
一图掌握 操作系统 核心要点
linux·windows·后端·系统
ajassi200017 小时前
开源 C# 快速开发(十七)进程--消息队列MSMQ
windows·开源·c#
Python私教18 小时前
5分钟上手 MongoDB:从零安装到第一条数据插入(Windows / macOS / Linux 全平台图解)
windows·mongodb·macos
Yana_Zeng20 小时前
win10安装spark3.1详细流程(小白用)
hadoop·windows·spark