【LeetCode】102.二叉树的层序遍历

题目

https://leetcode.cn/problems/binary-tree-level-order-traversal/description/

思路

  1. 边界处理:根节点为空则直接返回空列表

  2. 队列初始化:创建队列,将根节点入队

  3. 逐层遍历:循环处理直到队列为空

    • 记录当前队列长度(即当前层节点数)
    • 创建当前层的值列表
    • 循环取出当前层所有节点:
      • 节点值加入当前层列表
      • 左右子节点(不为空)加入队列供下一层使用
    • 将当前层列表加入结果集
  4. 返回结果

核心:利用队列的先进先出特性,通过记录每层节点数量来控制分层输出。

code

java 复制代码
/**
 * 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>> result = new LinkedList();
        Deque<TreeNode> deque = new LinkedList();
        if(root == null) return result;
        deque.offer(root);
        //队不为空
        while(deque.isEmpty()==false){
            List<Integer> list = new ArrayList<>();
            int nodeNum = deque.size();
            while(nodeNum>0){

                TreeNode node=deque.poll();
                nodeNum--;
                list.add(node.val);
                if(node.left !=null){
                    deque.offer(node.left);
                }
                if(node.right!=null){
                    deque.offer(node.right);
                }
                
            }
            result.add(list);

        }

         return result;
    }
}
相关推荐
梦梦代码精11 小时前
为什么这个开源的AI平台会火?有点东西。。。
人工智能·算法·机器学习·docker·开源
随意起个昵称11 小时前
线性dp-综合刷题1(Not Alone)
算法·动态规划
如何原谅奋力过但无声12 小时前
【灵神高频面试题合集09-13】二叉树、二叉搜索树
数据结构·算法·leetcode
皆圥忈12 小时前
磁盘物理结构与文件系统基础讲解
linux·算法
数据仓库搬砖人13 小时前
用 LangGraph 从零搭一个客服 Agent:多轮对话 + 工具调用全流程
算法
GuWenyue13 小时前
告别JS类型坑!Ts为什么在ai时代逐渐成为"第一"语言
前端·算法·typescript
子琦啊13 小时前
哈希与前缀和
算法·哈希算法
Deep-w13 小时前
【MATLAB】基于离散 LQR 的车辆横向轨迹跟踪控制方法研究
开发语言·算法·matlab
Peter·Pan爱编程13 小时前
23. 算法库:用算法代替手写循环
c++·人工智能·算法
小欣加油13 小时前
leetcode2161 根据给定数字划分数组
数据结构·c++·算法·leetcode·职场和发展