七七老师の白日梦
首页项目归档照片墙音乐灵境说说杂谈友链关于
封面

二叉树的层序遍历:数组输出

写作时间:2026-07-31 10:14:50

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。

需求

  • 层序遍历

实现

  • if判断

代码

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;

class Solution {

    /**
     * 二叉树的层序遍历
     * @param root 二叉树根节点
     * @return 按层分组的节点值列表
     */
    public List<List<Integer>> levelOrder(TreeNode root) {
//        定义一个结果列表
        List<List<Integer>> result = new ArrayList<>();
//        判断根节点是否为空
        if (root == null) {
            return result;
        }
//创建一个队列
        Queue<TreeNode> queue = new LinkedList<>();
//        queue的offer入队(第一次见到)
        queue.offer(root);
//遍历队列
        while (!queue.isEmpty()) {
//            测量队列长度
            int size = queue.size();
//            创建一个层列表
            List<Integer> level = new ArrayList<>();
//当层遍历完成时,size为0
            for (int i = 0; i < size; i++) {
//                从队列中取出一个节点
                TreeNode node = queue.poll();
//                把节点的值加入层列表
                level.add(node.val);
//                非空的左右子节点入队
                if (node.left != null) {
                    queue.offer(node.left);
                }
                if (node.right != null) {
                    queue.offer(node.right);
                }
            }
//            返回层列表
            result.add(level);
        }

        return result;
    }
}

‍

avatar

七七老师

分享代码日常

RECOMMENDED

七七旧事:复盘并改变写博客的方式

2026-07-02 22:54:38

字母异位词

2026-07-04 22:22:08

寻找两个正序数组的中位数:合并与二分

2026-07-08 15:56:26

Table of Contents