102. 二叉树的层序遍历 队列+迭代

102. 二叉树的层序遍历

已解答

中等

相关标签

相关企业

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

示例 1:

复制代码
输入:root = [3,9,20,null,null,15,7]
输出:[[3],[9,20],[15,7]]

示例 2:

复制代码
输入:root = [1]
输出:[[1]]

示例 3:

复制代码
输入:root = []
输出:[]

提示:

  • 树中节点数目在范围 [0, 2000] 内
  • -1000 <= Node.val <= 1000

队列+迭代

java 复制代码
public List<List<Integer>> levelOrder(TreeNode root) {
        List<List<Integer>> resultList = new ArrayList<>();
        if(root == null){
            return resultList;
        }
        //迭代实现
        //把根节点装进队列里面
        Queue<TreeNode> que = new LinkedList<>();
        que.add(root);
        //que.offer(root);

        while(!que.isEmpty()){
            List<Integer> itemList = new ArrayList<>();
            int len = que.size();

            while(len > 0){
                //装配一层的结果集
                TreeNode tempNode = que.poll();
                //拿到值
                itemList.add(tempNode.val);
                
                //拿到值后里面查看当前节点的左右节点是否存在,存在装进去 随着len的实时更新。                    
                //会逐渐遍历 len用于找到队列哪些节点是当前层
                if(tempNode.left != null){que.add(tempNode.left);}
                if(tempNode.right != null){que.add(tempNode.right);}
                len--;
            }
            resultList.add(itemList);
        }
        return resultList;
    }
相关推荐
郝学胜-神的一滴2 小时前
游戏设计:原型与开发 19:U3D工位布置与性格说明书
人工智能·算法·unity·unreal engine·游戏策划·游戏设计
東隅已逝,桑榆非晚2 小时前
红黑树:从概念到实现
数据结构·c++·笔记·学习
hahaha60162 小时前
数字图像时域滤波或者3D降噪算法FPGA实现
算法·计算机视觉·fpga开发
YSL0701243 小时前
一文通关-----树和二叉树
数据结构·算法
小糯米6013 小时前
数据结构 数组与链表 内存与缓存
数据结构
青少儿编程课堂3 小时前
蓝桥杯青少组图形化+信息素养+电子学会Scratch考级:校园口算闯关解析
c++·python·算法·bfs·信息学竞赛
computersciencer3 小时前
应用贝叶斯公式:迟到了,那坐的是哪种交通工具呢?
算法·机器学习·概率论
若亦_3 小时前
排序>>交换排序
java·数据结构·算法
努力努力再努力wz3 小时前
【Lua 入门系列】Lua数据结构:从 Table 出发,一文串联数组、链表、栈、队列、集合、映射与树的实现原理
数据结构·链表·lua
dialect_12 小时前
KMP算法
开发语言·c++·算法