【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;
    }
}
相关推荐
呃呃本13 小时前
算法题(贪心算法)
算法·贪心算法
听你说3214 小时前
不迷路、不重扫、不遗漏:库萨科技无人清扫车以空间智能领跑无人环卫赛道
人工智能·科技·算法·机器人
吃好睡好便好14 小时前
在Matlab中绘制三维直方图
开发语言·学习·算法·matlab·信息可视化
故事和你9114 小时前
洛谷-【图论2-2】最短路4
开发语言·数据结构·c++·算法·动态规划·图论
我爱cope14 小时前
【力扣hot100:239. 滑动窗口最大值】
算法·leetcode·职场和发展
XINVRY-FPGA14 小时前
XC7Z010-2CLG400I Xilinx Zynq-7000 FPGA
arm开发·嵌入式硬件·算法·fpga开发·硬件工程·dsp开发·fpga
承渊政道14 小时前
【贪心算法】(经典实战应用解析(四):分发饼干、最优除法、跳跃游戏、跳跃游戏Ⅱ、加油站)
数据结构·c++·算法·leetcode·贪心算法·动态规划·哈希算法
m0_6294947314 小时前
LeetCode 热题 100-----24.回文链表
数据结构·算法·leetcode·链表
爱怪笑的小杰杰14 小时前
Leaflet 实现轨迹拐角自动圆弧化:基于球面几何的高精度平滑算法
前端·javascript·算法·无人机
ccLianLian14 小时前
图论·刷题总结
算法·深度优先·图论