力扣102、二叉树的层序遍历

题目:

思路:将第一层节点加入队列,并记录第一层节点个数size,一个一个弹出节点,弹出size个,每弹出一个都将弹出节点的左右孩子加入队列中。

复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public List<List<Integer>> levelOrder(TreeNode root) {
        List<List<Integer>> res = new ArrayList();
        Queue<TreeNode> queue = new LinkedList();
        if( root == null) return res;
        queue.add(root);

        while(!queue.isEmpty()){
            int size = queue.size();
            List<Integer> list = new ArrayList();
            while(size-- > 0){
                TreeNode cur =  queue.peek();
                queue.poll();
                list.add(cur.val);
                if(cur.left != null){
                    queue.add(cur.left);
                }
                if(cur.right != null){
                    queue.add(cur.right);
                }
            }
            res.add(list);
        }

        return res;
    }
}
相关推荐
shehuiyuelaiyuehao5 分钟前
算法50,分治归并,数组中的逆序对
java·算法
阳明山水42 分钟前
校准分位数驱动智能库存决策
人工智能·深度学习·算法·机器学习·架构
雨落在了我的手上1 小时前
Java数据结构(十四):Map和Set
数据结构
码行山野赴时序归途1 小时前
链表家族收官篇:循环链表
c语言·开发语言·数据结构·链表
别动我齐刘海2 小时前
ROS2 Jazzy + C++ 实战路线——进阶学习3
c++·人工智能·vscode·python·算法·机器学习·机器人
zhangfeng11332 小时前
《从“人工适配“到“智能生成“:KernelSwift 跨国产芯片算子迁移全栈方案解读》 —— 强调范式跃迁和跨硬件属性,适合偏架构分析的写法
人工智能·算法·华为·ai编程·npu
0+1112 小时前
算法 --滑动窗口
c++·算法·leetcode
reikocao3 小时前
大场景下 Hessian 特征值放大与退化检测
算法
hetao17338373 小时前
2026-09-18 hetao1733837 的刷题记录
c++·算法
wuyk5553 小时前
21.计数排序:不用比较的“空间换时间”排序算法
python·算法·排序算法