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;
}

相关推荐
5***g2981 小时前
Windows安装Rust环境(详细教程)
开发语言·windows·rust
吴声子夜歌1 小时前
Windows——PowerShell
windows
极简之美3 小时前
Mac 远程连接 Windows 简明教程(2025 实测版)
windows·macos
电脑小管家4 小时前
蝰蛇鼠标驱动怎么安装?全型号驱动下载方法汇总
windows·驱动开发·计算机外设·电脑·游戏程序
无限进步_4 小时前
C++从入门到类和对象完全指南
开发语言·c++·windows·git·后端·github·visual studio
陈鋆4 小时前
Langchain-Chatchat[三、知识库管理的 RAG]
windows·langchain
浪客川4 小时前
高效日志分离器:一键筛选关键信息
开发语言·windows·c#
7***99874 小时前
Redis——Windows安装
数据库·windows·redis
love530love4 小时前
【ComfyUI/SD环境管理指南(二)】:如何避免插件安装导致的环境崩溃与“外科手术式”修复
人工智能·windows·python·stable diffusion·github·aigc·comfyui
聪明努力的积极向上4 小时前
【WINDOWS】电脑外接显示屏突然无效(戴尔Inspiron 15 3511)
windows·电脑