树-从上往下打印二叉树-JZ22

innovus获取mem pin shape box脚本 innovus mem 的pin shae只能通过attitude editor看属性获取其pin shape的box,但是想用脚本处理一定box时,没有别的办法能直接获取box属性。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 阅读详情

描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
示例1

输入: {5,4,#,3,#,2,#,1}
返回值: [5,4,3,2,1]

思路
广度优先遍历,利用队列存储数据
时间复杂度:O(N),需要遍历整个树;
空间复杂度:队列中存储的子节点最多为N/2(平衡树),O(N);
在这里插入图片描述

代码

import java.util.ArrayList;
import java.util.Queue;
import java.util.LinkedList;
/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
public class Solution {
    public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
        ArrayList<Integer> result = new ArrayList<>();
        if (root == null) {
            return result;
        }
        // 借助队列,保存数据,bfs
        Queue<TreeNode> queue = new LinkedList<>();
        queue.offer(root);
        while(!queue.isEmpty()) {
            // 取出队列头部结点
            TreeNode temp = queue.poll();
            if (temp.left != null) {
                queue.offer(temp.left);
            }
            if (temp.right != null) {
                queue.offer(temp.right);
            }
            result.add(temp.val);
        }
        return result;
    }
}
C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片 基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正 立即下载

相关推荐

Docker拉取ubuntu22.04镜像使用ROS2 humble及仿真工具可视化进行导航

Docker中安装Ubun22以及ROS,gazebo可视化等

lovebc的博客 1676

从上至下打印二叉树(C++)

struct TreeNode{ int val; struct TreeNode* left; struct TreeNode* right; TreeNode(int x): val(x), left(NULL),right(NULL){ } }; vector<int> CenShowTree(TreeNode* pRo...

weixin_38679101的博客 555

科研党必备:用MATLAB批量处理.mat文件数据的3种高效方法

本文为科研人员提供了使用MATLAB批量处理.mat文件数据的三种高效方法,涵盖智能数据加载、专业可视化与自动化报告生成。通过构建自动化框架、多维度数据画图策略及批量处理流程,帮助用户显著提升数据处理效率与图表专业性,解决海量实验数据的管理与分析难题。

weixin_29089057的博客 70

树--JZ4重建二叉树JZ17树的子结构JZ18二叉树的镜像JZ22从上往下打印二叉树JZ23二叉搜索树的后序遍历序列

递归、子问题解决方法 JZ4重建二叉树 描述       输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 示例1 输入: [1,2,3,4,5,6,7],[3,2,4,1,6,5,7] 返回值: {1,2,5,3,4,6,7} 代码如下: /** *

qq_45915957的博客 197

【Web攻防】SQLMap实战进阶:从数据猜解到高权限渗透的全流程指南

本文介绍了SQLMap工具在Web安全渗透测试中的实战应用,重点讲解了数据猜解、高权限操作、复杂请求提交、Tamper脚本开发和指纹绕过等核心场景。文章提供了可直接复用的命令示例,包括数据库信息获取、文件读写、命令执行等操作,并详细说明了POST/JSON/Cookie注入的实现方法。同时,介绍了Tamper脚本的开发模板和指纹伪装技巧,帮助降低检测风险。最后强调SQLMap在自动化渗透全链路中的价值,从漏洞发现到权限提升的完整流程,并提供了优化测试效率的实用建议。所有技术内容仅限合法授权场景使用。

YsChunQiu777的博客 440

软件工程导论实践:从需求到架构的机票预订系统全流程解析

本文深入解析机票预订系统从需求分析到架构设计的全流程实践,涵盖业务流程、功能建模、模块化设计、性能优化等关键环节。通过实际项目经验,分享软件工程导论在复杂系统开发中的应用技巧,包括数据流图绘制、E-R图设计、微服务架构及高并发处理等实战策略,助力开发者构建高效可靠的机票预订系统。

weixin_29202213的博客 412

JZ22 从上往下打印二叉树 Java

题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 牛客网的输入示例有点误导人,不看就好了。 分析 这道题实质上考察的就是树的遍历算法,只是这种遍历不是我们熟悉的前序、中序或者后序遍历。由于我们不太熟悉这种按层遍历的方法,可能一下也想不清楚遍历的过程。 因为按层打印的顺序决定应该先打印的根节点,所以我们从树的根节点开始分析。为了接下来能够打印8的节点的两个子节点,我们应该在遍历到该节点时把值为6和10的两个节点保存到一个容器中,现在容器内就有两个节点了。按照从左到右打印的要..

ChaoticNg的博客 173

踩坑2周总结:Python+YOLO26搭建工业级多路视频分析应用,从单路卡顿到16路4K稳跑30FPS

本文分享了工业级多路视频分析系统的实战经验,针对智慧物流园区的车辆违停和人员安全监测需求,提出了一套完整的解决方案。作者通过踩坑实践,总结出多路视频分析的四大核心痛点:视频流解码瓶颈、推理调度混乱、内存占用爆炸和部署兼容性差。 文章详细介绍了技术选型方案,推荐使用FFmpeg+PyAV进行硬件加速解码、YOLO26+TensorRT INT8量化推理、单进程多线程的生产者-消费者架构,以及内存池复用等技术组合。该方案在RTX 4070 Ti上实现了16路4K视频30FPS稳定运行,GPU利用率达85%以上,

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 955

JZ22 从上往下打印二叉树

题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 解:从上往下打印,同层从左至右,这就是一个典型的树层遍历。层遍历可以通过队列的入队出队性质来进行打印。具体实现代码如下: /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { p

pikaqiu_n95的博客 160

Sigrity System Explorer Transient Analysis模式进行瞬态仿真分析操作指导-差分信号

Sigrity System Explorer Transient Analysis模式可以用于瞬态仿真分析,通过搭建简易拓扑用于前仿真分析通道的时域性能,下面搭建一个简易的差分拓扑进行说明,以下图为例,准备好发送接收端的IBIS模型, (ibis_se.ibs,本例发送接收端都使用相同的IBIS模型),以及传输线的S参数模型(welement_se.sp)最上方的图形界面是传输线的模型,本例是一个上下都有参考平面的带状线,右侧的梯形是蚀刻角度,根据W1和W2以及铜厚来确定。

weixin_54787054的博客 440

DeepSeek邮件管理全攻略

DeepSeek邮件助手是一款高效的邮件处理工具,提供智能分类、撰写、回复和任务自动化功能。通过API调用或多智能体系统,它能自动分类邮件意图、生成专业回复并优化邮件内容。核心功能包括智能过滤、会议安排和任务提醒,支持与主流邮箱服务集成。提供精准提示词模板,帮助用户快速生成得体邮件,提升工作效率。适合个人和企业使用,通过简单配置即可实现邮件处理自动化。

Genio_Wang的博客 180

《剑指offer》JZ22从上往下打印二叉树

从上往下打印出二叉树的每个节点,同层节点从左至右打印。 解析:层序遍历 代码: import java.util.*; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class Solution { p...

FamilyLin 1145

相似贴子推荐:基于 LangChain4j + Milvus 的混合检索实战

本文提出了一种基于LangChain4j和Milvus的混合检索方案,用于解决论坛社区中的相似帖子推荐问题。该方案结合稠密向量语义检索和BM25关键词检索的优势,通过RRF算法实现结果融合。系统采用bge-small-zh模型生成语义向量,利用Milvus 2.5+原生支持的BM25功能和混合搜索API,在百万级数据规模下实现50ms内的检索延迟,召回率和精确率分别提升15%和22%。文章详细介绍了从数据预处理、向量化到混合检索的完整实现流程,并探讨了进阶优化方向,为推荐系统和RAG应用提供了高效解决方案。

分享AI、区块链技术及应用,未来已来 88

JZ22 --- 从上往下打印二叉树

题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 题解: 分析题目,则为层序遍历。需要一个队列。 (1)根结点入队列 (2)当队列不为空时,根结点出队列,并将其值存入 list (3)如果此时的结点有左右孩子,则分别将左右孩子入队列 public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<Integer> list = new ArrayList<> ();

qq_43632625的博客 314

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

剑指offer-JZ22从上往下打印二叉树

时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 热度指数:589354 本题知识点: 队列 树 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 代码 /* function TreeNode(x) { this.val = x; this.left = null; this.right = null; } */ function PrintFromTopToBottom(root) { if(root === nu.

满天星的博客 217

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

剑指Offer JZ22 从上往下打印二叉树 C++实现

题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 解题思路 方法一:层次遍历 1、思路:层次遍历二叉树。 2、代码: /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: vector&lt

weixin_41020287的博客 201

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

JZ22-从上往下打印二叉树

【题目描述】 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 【官方解法】 思路较为简单,看代码注释即可! class Solution { public: vector<int> PrintFromTopToBottom(TreeNode* root) { vector<int> ret;//初始化一个vector,之后需要打印的值val存在这里 if (!root) return ret;//判空操作 queue&l

zhangmumu_的博客 133

JZ22 -从上往下打印二叉树(JS)

题目描述:从上往下打印二叉树 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 题目解析: 利用队列的先进先出的特性。 利用辅助队列,将root,push进辅助队列,之后每次去除辅助队列的第一个元素进行,存值,并且对其左右节点进行判断。 完整代码: /* function TreeNode(x) { this.val = x; this.left = null; this.right = null; } */ function PrintFromTopToBot.

qq_43955202的博客 579

JZ22 从上往下打印二叉树

JZ22 从上往下打印二叉树 题目描述: 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 示例: 输入: {5,4,#,3,#,2,#,1} 返回值: [5,4,3,2,1] 题解: 1.思路 题意就是层次遍历二叉树,利用队列即可实现。 练习一下Java中的QUeue。 在Java中Queue是和List、Map同等级别的接口,LinkedList中也实现了Queue接口,该接口中的主要函数有: 容量不够或队列为空时不会抛异常:offer(添加队尾元素)、peek(访问队头元素)、poll(访问

qq_41273406的博客 119

JZ22---从上往下打印二叉树

题目 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 思路   题目意思表达也很明确。就是手写一个层次遍历罢了。   关于层次遍历,我们一般都使用队列。具体步骤如下所示: 首先从根结点开始,将1结点入队列 如果同一层已经没有兄弟结点结束入队。做出队操作,取出队头的元素,再将队头的孩子结点全入队。 重复以上操作。 直到队列为空。说明已经层次遍历结束。 AC代码 import java.util.ArrayList; import java.util.LinkedL

Eva_xiaoxi的博客 265

树04--从上往下打印二叉树

树04--从上往下打印二叉树-jz22题目概述解析&参考答案注意事项说明 题目概述 算法说明 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 测试用例 输入: {5,4,#,3,#,2,#,1} 输出: [5,4,3,2,1] 解析&参考答案 解析 从root节点开始,依次将节点放在一个list中,每次取出list的头元素,并将头元素的左右节点追加到list中;依次循环,直到list中无数据为止。 参考答案 vim jz22.go package main import "

脚步不能达到的地方,眼光可以达到;眼光不能达到的地方,精神可以飞到 191

JZ22 从上往下打印二叉树 python

JZ22 从上往下打印二叉树 my version from queue import Queue class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None class Solution: # 返回从上到下每个节点值列表,例:[1,2,3] def PrintFromTopToBottom(self, root):

qq_42187809的博客 164

(python版)《剑指Offer》JZ22:从上往下打印二叉树

本系列文章为《剑指Offer》刷题笔记。 刷题平台:牛客网 牛客这个输入是按哪种排序构建的?有哪位前辈帮我解答一二? 先以LeetCode的这个例子看吧 题目要求的二叉树的 从上至下 打印(即按层打印),又称为二叉树的 广度优先搜索(BFS)。 BFS 通常借助 队列 的先入先出特性来实现。 欣赏大佬的图解 注:queue 是一个叫做“queue队列”的列表, pop方法可返回被删元素 1、7 同理,直至queue为空,res得到的便是按层遍历 / BFS 的结果 # -*- codi

sinat_29950703的博客 256

JZ22 剑指offer 从上往下打印二叉树

第22题 从上往下打印二叉树 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: vector<int> PrintFromTopToBot

KazeHelloWorld的博客 98

【每日一题】JZ22 从上往下打印二叉树

当你的才华还撑不起你的野心时,你应该静下心去学习 。 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 输入 3 / \ 9 20 / \ 15 7 输出 [3,9,20,15,7] 解题思路 特例处理: 当树的根节点为空,则直接返回空列表 [] ; 初始化: 打印结果列表 res = [] ,包含根节点的队列 queue = [root] ; BFS 循环: 当队列 queue 为空时跳出; 出队: 队首元素...

试问道几许 145
上一篇: 树-二叉树的镜像-JZ18
下一篇: 树-二叉搜索树的后序遍历序列-JZ23
whl_program
博客等级 码龄11年 101粉丝 279原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值