从上到下打印二叉树 II(简单难度)

简介: 从上到下打印二叉树 II(简单难度)

目录

题目概述(简单难度)2.png题目链接:

点我进入链接


思路与代码

思路展现

这个题目其实就是二叉树的层序遍历(使用队列)+List集合来完成遍历的操作

同时这道题目还要分层打印出来,这也是这道题目的难点,一开始我也没想出来,后来看到了卡神的操作是真的秀,同学们要是想复习二叉树的层序遍历操作可以来看我的这篇博客:

点我进入对应博客

要想使我们的最后的结果是分层打印出来,就需要使用循环,但是这个循环非常的巧妙:

    for(int i = queue.size(); i > 0; i--) {
 }

注意我们每次统计队列中的长度的时候一定是当前每层的元素都在队列中的时候,这个个数不多不少正是每层元素的个数,并且注意i必须等于queue.size,不能等于其他的任何数字,并且i必须大于0,不能大于等于0.

如果按照i=0;i


代码示例

class Solution {
    public List<List<Integer>> levelOrder(TreeNode root) {
        Queue<TreeNode> queue = new LinkedList<>();
        List<List<Integer>> res = new ArrayList<>();
        if(root != null){
           queue.add(root);
        }
        while(!queue.isEmpty()) {
            List<Integer> tmp = new ArrayList<>();
            //注意这块的循环必须这样写
            for(int i = queue.size(); i > 0; i--) {
                TreeNode node = queue.poll();
                tmp.add(node.val);
                if(node.left != null){
                   queue.add(node.left);
                }
                if(node.right != null){
                   queue.add(node.right);
                }
            }
            res.add(tmp);
        }
        return res;
    }
}

2.png





相关文章
|
7月前
|
IDE 开发工具
遍历思路与子问题思路:详解二叉树的基本操作(二)
这篇内容介绍了二叉树的基本操作,包括通过遍历和子问题思路来解决不同的问题。
37 0
遍历思路与子问题思路:详解二叉树的基本操作(二)
|
7月前
遍历思路与子问题思路:详解二叉树的基本操作 (一)
这篇内容介绍了二叉树的基本概念和操作,包括二叉树的结构定义以及一些基本操作如前序遍历、中序遍历、后序遍历、获取树中节点个数等。
51 0
|
7月前
|
算法
《剑指offer》之从上到下打印二叉树Ⅰ、Ⅱ、Ⅲ
《剑指offer》之从上到下打印二叉树Ⅰ、Ⅱ、Ⅲ
53 0
|
7月前
|
存储
【剑指offer】- 按之字形顺序打印二叉树-45/67
【剑指offer】- 按之字形顺序打印二叉树-45/67
从上到下打印二叉树(简单难度)
从上到下打印二叉树(简单难度)
51 0
从上到下打印二叉树(简单难度)
从上到下打印二叉树 III(中等难度)
从上到下打印二叉树 III(中等难度)
82 0
从上到下打印二叉树 III(中等难度)
|
算法
二叉树中和为某一值的路径(中等难度)
二叉树中和为某一值的路径(中等难度)
87 0
二叉树中和为某一值的路径(中等难度)
|
算法 前端开发 程序员
「LeetCode」剑指Offer-32从上到下打印二叉树 ⚡️
「LeetCode」剑指Offer-32从上到下打印二叉树 ⚡️
108 0
「LeetCode」剑指Offer-32从上到下打印二叉树 ⚡️