WELCOME TO Pluto134340小行星

清风湿润,茶烟轻扬。

41.二叉树的层序遍历

102. 二叉树的层序遍历

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

示例 1:

输入:root = [3,9,20,null,null,15,7]
输出:[[3],[9,20],[15,7]]

示例 2:

输入:root = []
输出:[]

【思路】

利用queue和size实现对当前层入队出队存入list。

注意!!!

返回类型为List<List<Integer>>

class Solution {
    public List<List<Integer>> levelOrder(TreeNode root) {
        if(root==null) return new ArrayList();

        List<List<Integer>> list = new ArrayList<List<Integer>>();
        Queue<TreeNode> queue = new LinkedList<TreeNode>();
        queue.offer(root);  
        
        while(!queue.isEmpty()){
            // 获取当前层的节点数量,保证一层处理完再处理下一层
            int size = queue.size();
            // 存储当前层的节点值
            List<Integer> tmp = new ArrayList();
            while(size>0){
                TreeNode node = queue.poll();
                if(node.left!=null) queue.offer(node.left);
                if(node.right!=null) queue.offer(node.right);
                size--;
                tmp.add(node.val);
            }
            list.add(tmp);
        }
        return list;
    }
}

 

posted @ 2026-01-27 10:04  Pluto134340  阅读(2)  评论(0)    收藏  举报