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

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>> levelOrderBottom(TreeNode root) {
        //创建结果集
        List<List<Integer>> resultList = new ArrayList<>();
        if(root == null) return resultList;
        Queue<TreeNode> que = new LinkedList<>();
        //将根结点放入队列
        que.add(root);
        while(!que.isEmpty()){
            //装载每一层数据的集合
            List<Integer> itemList = new ArrayList<>();
            int len = que.size(); //len用于判断队列元素是否属于当前层

            while(len > 0){
                //拿出临时节点
                TreeNode tmpNode = que.poll();
                itemList.add(tmpNode.val);
                if(tmpNode.left != null){que.add(tmpNode.left);}
                if(tmpNode.right != null){que.add(tmpNode.right);}
                len--;
            }
            resultList.add(itemList);
        }
        //反转
        Collections.reverse(resultList);
        return resultList;
    }
相关推荐
会编程的土豆1 分钟前
【日常做题】 代码随想录(岛屿最大面积+寻宝)
数据结构·算法·图论
阿洛学长8 分钟前
汉洛塔结构思维
算法
木子n114 分钟前
第2篇:坐标变换与数学基础:FOC算法的核心数学工具
算法·电机控制·foc
阿Y加油吧27 分钟前
两道经典 DP 题:零钱兑换 & 单词拆分(完全背包 + 字符串 DP)
算法
疯狂打码的少年35 分钟前
有序线性表删除一个元素:顺序存储 vs 单链表,平均要移动多少个元素?
数据结构·算法·链表
y = xⁿ1 小时前
20天速通LeetCode day07:前缀和
数据结构·算法·leetcode
载数而行5201 小时前
算法集训1:模拟,枚举,错误分析,前缀和,差分
算法
hehelm2 小时前
vector模拟实现
前端·javascript·算法
Tina学编程2 小时前
[HOT 100]今日一练------划分字母区间
算法·hot 100
RTC老炮2 小时前
RaptorQ前向纠错算法架构分析
网络·算法·架构·webrtc