首页 > 其他分享 >力扣---剑指 Offer 32 - II. 从上到下打印二叉树 II

力扣---剑指 Offer 32 - II. 从上到下打印二叉树 II

时间:2023-03-22 22:55:23浏览次数:34  
标签:--- TreeNode res tree queue II add 二叉树 new

从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。

例如:
给定二叉树: [3,9,20,null,null,15,7],
    3
   / \
  9  20
    /  \
   15   7
返回其层次遍历结果:
[
  [3],
  [9,20],
  [15,7]
]

提示:
    节点总数 <= 1000
注意:本题与主站 102 题相同:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/cong-shang-dao-xia-da-yin-er-cha-shu-ii-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


 

也还是广度优先搜索。

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public List<List<Integer>> levelOrder(TreeNode root) {
        if (root == null) {
            return new ArrayList<List<Integer>>();
        }
        List<List<Integer>> res = new ArrayList<>();
        Queue<TreeNode> queue = new LinkedList<>();
        queue.add(root);
        search(queue, res);
        return res;
    }
    private void search(Queue<TreeNode> queue, List<List<Integer>> res) {
        if (queue.isEmpty()) {
            return;
        }
        Queue<TreeNode> queue1 = new LinkedList<>();
        List<Integer> list = new ArrayList<>();
        while (!queue.isEmpty()) {
            TreeNode tree = queue.poll();
            list.add(tree.val);
            if (tree.left != null) {
                queue1.add(tree.left);
            }
            if (tree.right != null) {
                queue1.add(tree.right);
            }
        }
        res.add(list);
        search(queue1, res);
    }
}

 

标签:---,TreeNode,res,tree,queue,II,add,二叉树,new
From: https://www.cnblogs.com/allWu/p/17245806.html

相关文章

  • 通过 poe 免费使用ChatGPT、GPT-4
    poe是由美版知乎Quora构建的AI产品,提供实时在线与多个AI机器人交流。Quora于去年12月首次推出Poe作为封闭测试版,并于2月份向所有iOS用户开放。支持web端和iO......
  • 编程技巧-索引标记法
    在本周的CodeReview中,从Pair学到一个技巧--索引标记法(暂且叫这个名称)题目以任意一个Cell中心,根据8个邻居状态,判断该Cell下一个状态:如果2个活着那么保持状态不变,3个邻居活......
  • 批处理之spring-batch预研篇
    批处理是企业级业务系统不可或缺的一部分,springbatch是一个轻量级的综合性批处理框架,可用于开发企业信息系统中那些至关重要的数据批量处理业务。目录背景思路组件图部分......
  • C语言-指针学习笔记
    指针变量:变量的值是内存的地址普通变量的值是实际的值指针变量的值是具有实际值的变量的地址作为参数的指针:voidf(int*p);在被调用的时候得到了某个变量的地址......
  • 一步步构建轻量级http-contract客户端
    http-client-plus是一个类似于Feign一样的申明式ESB请求代理组件,使用ESB请求代理组件,面向SpringCloud微服务的,老的项目spring3.x也支持.背景习惯于玩rpc的同学都知道,透明化......
  • Wi-Fi究竟是怎么来的?
    19世纪末,人类发明了无线电报,从此,开启了对无线电世界的探索。当时的无线电报机,采用的是火花隙式发射机(spark-gaptransmitter),主要用来传送摩尔斯电码。早期的无线电报机,左下......
  • Google Guice 入门教程05 - AOP(面向切面编程)
    2AOP面向切面编程2.1AOP入门在前面的章节主要讲Guice的依赖注入,有了依赖注入的基础后我们再来看Guice的AOP。我们先从一个例子入手,深入浅出的去理解Guice的AOP的原理和实......
  • Google Guice 入门教程07 - 整合第三方组件(1)
    4整合第三方组件在《GoogleGuice入门教程06 –Web和Servlet》中我们看到了Guice整合Struts2的应用。本章节继续讨论Guice整合其它第三方组件的应用。本章节重点谈G......
  • ctf-文件执行漏洞(绕过)
    考察知识点:文件执行漏洞空格特殊字符、flag字符绕过空格绕过 ${IFS} ${IFS}$1 $IFS$1 <和<> {cat,flag} %20替换 %0a(换行) %0d(回车) %09(tab黑名单(关键字)绕......
  • AIG(And-Inverter Graph)基本概念
    目录1AIG概述2AIG约简2.1StructuralHash一级strash两级strash2.2FunctionalReduce逻辑锥(cone)随机仿真SAT与等价类检查参考文献1AIG概述在前面的博文《Quine-McClu......