【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;
    }
}
相关推荐
一只幸运猫.12 小时前
2026Java 后端面试完整版|八股简答 + AI 大模型集成技术(最新趋势)
人工智能·面试·职场和发展
Old Uncle Tom12 小时前
OpenClaw 记忆系统 -- 记忆预加载
java·数据结构·算法·agent
会编程的土豆12 小时前
洛谷题单入门1 顺序结构
数据结构·算法·golang
生信碱移12 小时前
PACells:这个方法可以鉴定疾病/预后相关的重要细胞亚群,作者提供的代码流程可以学习起来了,甚至兼容转录组与 ATAC 两种数据类型!
人工智能·学习·算法·机器学习·数据挖掘·数据分析·r语言
智者知已应修善业13 小时前
【51单片机中的打飞机设计】2023-8-25
c++·经验分享·笔记·算法·51单片机
圣保罗的大教堂14 小时前
leetcode 1855. 下标对中的最大距离 中等
leetcode
智者知已应修善业15 小时前
【51单片机按键调节占空比3位数码管显示】2023-8-24
c++·经验分享·笔记·算法·51单片机
.54816 小时前
## Sorting(排序算法)
python·算法·排序算法
wuweijianlove16 小时前
算法的平均复杂度建模与性能回归分析的技术7
算法·数据挖掘·回归
子琦啊16 小时前
【算法复习】字符串 | 两个底层直觉,吃透高频题
linux·运维·算法