力扣102、二叉树的层序遍历

题目:

思路:将第一层节点加入队列,并记录第一层节点个数size,一个一个弹出节点,弹出size个,每弹出一个都将弹出节点的左右孩子加入队列中。

复制代码
/**
 * 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>> res = new ArrayList();
        Queue<TreeNode> queue = new LinkedList();
        if( root == null) return res;
        queue.add(root);

        while(!queue.isEmpty()){
            int size = queue.size();
            List<Integer> list = new ArrayList();
            while(size-- > 0){
                TreeNode cur =  queue.peek();
                queue.poll();
                list.add(cur.val);
                if(cur.left != null){
                    queue.add(cur.left);
                }
                if(cur.right != null){
                    queue.add(cur.right);
                }
            }
            res.add(list);
        }

        return res;
    }
}
相关推荐
sinat_255487819 分钟前
泛型:超级、扩展、列表·学习笔记
java·windows·学习·算法
切糕师学AI10 分钟前
Elasticsearch RRF(倒数排序融合)技术详解与实践
算法·elasticsearch·搜索引擎·混合搜索·rrf·归一化问题
lihao lihao16 分钟前
进程地址空间
数据结构·c++·算法
Byte不洛17 分钟前
LeetCode双指针经典题
c++·算法·leetcode·双指针
汀、人工智能18 分钟前
[特殊字符] 第16课:最小覆盖子串
数据结构·算法·数据库架构·图论·bfs·最小覆盖子串
米粒122 分钟前
力扣算法刷题 Day 34
算法·leetcode·职场和发展
田梓燊37 分钟前
leetcode 189
算法·leetcode·职场和发展
仍然探索未知中37 分钟前
【Linux内核源码分析】内核数据结构
linux·数据结构
wuweijianlove1 小时前
算法复杂度的理论边界与实验验证研究的技术3
算法
rm6fEx0Z71 小时前
AUC 与 GAUC:从全局排序到用户内排序的理解
人工智能·算法·机器学习