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;
    }
相关推荐
智者知已应修善业10 分钟前
【查找字符最大下标以*符号分割以**结束】2024-12-24
c语言·c++·经验分享·笔记·算法
划破黑暗的第一缕曙光31 分钟前
[数据结构]:5.二叉树链式结构的实现1
数据结构
91刘仁德35 分钟前
c++类和对象(下)
c语言·jvm·c++·经验分享·笔记·算法
青桔柠薯片38 分钟前
数据结构:单向链表,顺序栈和链式栈
数据结构·链表
diediedei1 小时前
模板编译期类型检查
开发语言·c++·算法
阿杰学AI1 小时前
AI核心知识78——大语言模型之CLM(简洁且通俗易懂版)
人工智能·算法·ai·语言模型·rag·clm·语境化语言模型
mmz12071 小时前
分治算法(c++)
c++·算法
XiaoFan0121 小时前
将有向工作流图转为结构树的实现
java·数据结构·决策树
睡一觉就好了。1 小时前
快速排序——霍尔排序,前后指针排序,非递归排序
数据结构·算法·排序算法
齐落山大勇1 小时前
数据结构——单链表
数据结构