剑指offer——JZ32 从上往下打印二叉树 解题思路与具体代码【C++】

news2024/10/6 20:40:26

一、题目描述与要求

从上往下打印二叉树_牛客题霸_牛客网 (nowcoder.com)

题目描述

不分行从上往下打印出二叉树的每个节点,同层节点从左至右打印。例如输入{8,6,10,#,#,2,1},如以下图中的示例二叉树,则依次打印8,6,10,2,1(空节点不打印,跳过),请你将打印的结果存放到一个数组里面,返回。

数据范围:

0<=节点总数<=1000

-1000<=节点值<=1000

示例

示例1:

输入:{8,6,10,#,#,2,1}

返回值:[8,6,10,2,1]

示例2:

输入:{5,4,#,3,#,2,#,1}

返回值:[5,4,3,2,1]


二、解题思路

根据题目描述从上到下打印二叉树其实就是层次遍历二叉树,利用队列实现即可。

首先判断是否为空树,是的话直接返回空vecot;

先让根节点入队,然后当队列不为空的时候,出队列,然后把出队列的结点的值存入vector,然后判断当前结点的左子树与右子树是否为空,不为空则压入队列。最后返回v即可。


三、具体代码

class Solution {
public:
    vector<int> PrintFromTopToBottom(TreeNode* root) {
		vector<int> v;
		if(root==nullptr) return v;//如果是空树则返回空vector
		queue<TreeNode*> q;//利用队列进行层次遍历
		TreeNode* p;
		q.push(root);//先让根节点入队列
		while(!q.empty()){ //当队列不为空
		    p=q.front();
			q.pop();//出队列
			v.push_back(p->val);
			if(p->left) q.push(p->left);
			if(p->right) q.push(p->right);
		}
		return v;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1066159.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker运维之自定义网络配置

自定义网络配置讲解与实操 docker中的容器有独立的隔离空间&#xff0c;那么&#xff0c;它们能不能通过网络相互访问呢&#xff1f; 答案是可以的&#xff01;作者在之前Redis篇中使用docker配置了主从、cluster集群&#xff0c;当时的做法是利用每个容器的ip地址和端口创建相…

一对一直播实时美颜SDK算法背后的技术原理与实现

美颜技术已经成为了现代社交媒体和视频通信的不可或缺的一部分。用户希望看起来最好&#xff0c;而实时美颜技术通过在实时视频中平滑皮肤、修复瑕疵以及增强特征来满足这一需求。这种技术的核心是实时美颜SDK&#xff0c;它蕴含着精密的算法和工程实现&#xff0c;本文将深入探…

成功解决@Async注解不生效的问题,异步任务处理问题

首先&#xff0c;有这样一个异步监听方法 然后配置好了异步线程池 package com.fdw.study.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Conf…

维修派单系统好用吗?如何实现数字化后勤管理?

在当今社会&#xff0c;各种设备和设施的正常运转对于单位和组织来说至关重要。然而&#xff0c;由于各种因素的影响&#xff0c;设备和设施在日常运行过程中难免会出现故障。这时&#xff0c;高效的维修服务就显得尤为重要。而“的修”维修派单系统&#xff0c;就是一种专为维…

Java卷上天,可以转行干什么?

小刚是某名企里的一位有5年经验的高级Java开发工程师&#xff0c;每天沉重的的工作让他疲惫不堪&#xff0c;让他萌生出想换工作的心理&#xff0c;但是转行其他工作他又不清楚该找什么样的工作 因为JAVA 这几年的更新实在是太太太……快了&#xff0c;JAVA 8 都还没用多久&am…

怎么压缩pdf文件?分享缩小pdf文件的简单方法

在我们的日常生活和工作中&#xff0c;往往需要处理大量的PDF文件&#xff0c;而很多时候这些文件的大小会成为传输和存储的难题。为了解决这个问题&#xff0c;下面我们将介绍三种方法来压缩PDF文件&#xff0c;一起来看看吧~ 一、嗨格式压缩大师 首先&#xff0c;最简单也是…

Spring: @ComponentScan注解,不设置basePackages时,为什么会扫描该注解所在的包?

ComponentScanAnnotationParser类的parse方法&#xff1a; 可以看到如果没配置basePackages&#xff0c;会调用ClassUtils的静态方法getPackageName将声明ComponentScan的类所在的包添加到basePackages中去

山西电力市场日前价格预测【2023-10-08】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-10-08&#xff09;山西电力市场全天平均日前电价为258.40元/MWh。其中&#xff0c;最高日前电价为496.19元/MWh&#xff0c;预计出现在18:45。最低日前电价为0.00元/MWh&#xff0c;预计出…

TouchDesigner专题_LeapMotion安装(win10系统)

如果你已经走到了其他教程的最后一步&#xff0c;出现报错 Connection failed.Ensure the device is connected and the correct version (4.1) of Leap Motion driver is installed 直接跳到最后一节就能解决 一、LeapMotion硬件 硬件部分很简单&#xff0c;就和手机数据线…

文件服务器审核

数据是所有组织的命脉&#xff0c;保护存储此重要资产的存储库对于防止不必要的暴露、盗窃和丢失至关重要&#xff0c;管理员和数据所有者应增强其文件服务器安全性、满足合规性要求等。 文件服务器审核工具 使用 DataSecurity Plus 无缝监控、警报和报告跨 Windows 文件服务…

深圳市重点实验室申报标准-华夏泰科

深圳市重点实验室&#xff0c;作为中国科技创新的引领者&#xff0c;扮演着关键的角色&#xff0c;旨在推动前沿科学研究和技术创新。申请重点实验室&#xff0c;可为企业带来莫大的荣誉并可为企业及机构提供宝贵的资源和支持&#xff0c;更可获得丰厚的现金支持。那么如何申请…

京东数据分析平台:2023年8月京东奶粉行业品牌销售排行榜

鲸参谋监测的京东平台8月份奶粉市场销售数据已出炉&#xff01; 鲸参谋数据显示&#xff0c;8月份京东平台上奶粉的销售量将近700万件&#xff0c;环比增长约15%&#xff0c;同比则下滑约19%&#xff1b;销售额将近23亿元&#xff0c;环比增长约4%&#xff0c;同比则下滑约3%。…

HiveServer2 Service Crashes(hiveServer2 服务崩溃)

Troubleshooting Hive | 5.9.x | Cloudera Documentation 原因&#xff1a;别人用的都好好的&#xff0c;我的集群为什么会崩溃&#xff1f; 1.hive分区表太多(这里没有说具体数量。) 2.并发连接太多&#xff0c;我记的以前默认是200个连接 3.复杂的hive查询访问表的的分区…

【Vue面试题一】、说说你对 Vue 的理解

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;有使用过vue吗&#xff…

Apple developer证书、标识符和描述文件

Apple developer证书、标识符和描述文件 一、准备1&#xff0c;开发者账号2&#xff0c;CSR文件3&#xff0c;DeviceID 二、过程1&#xff0c;证书&#xff08;Certificates&#xff09;2、标识符&#xff08;Identifiers&#xff09;3、描述文件&#xff08;Profiles&#xff…

C语言之动态内存管理篇(1)

目录 为什么存在动态内存分配 动态内存函数的介绍 malloc free calloc realloc 常见的动态内存错误 今天收假了&#xff0c;抓紧时间写几篇博客。我又来赶进度了。今天我们来讲解动态内存管理。&#x1f197;&#x1f197; 为什么存在动态内存分配 假设我们去实现一个…

Iris for Mac:轻松实现高质量录屏的最佳选择

随着数字化时代的到来&#xff0c;录屏软件已经成为了许多人必备的工具之一。无论是教育、工作还是娱乐&#xff0c;录屏软件都可以帮助我们将重要的操作过程或内容记录下来&#xff0c;并与他人分享。而对于Mac用户来说&#xff0c;一款简单易用且功能强大的录屏软件尤为重要。…

划片机:半导体生产的必备设备

划片机是半导体加工行业中的重要设备&#xff0c;主要用于将晶圆切割成晶片颗粒&#xff0c;为后道工序粘片做好准备。随着国内半导体生产能力的提高&#xff0c;划片机市场的需求也在逐渐增加。 在市场定位上&#xff0c;划片机可以应用于半导体芯片和其他微电子器件的制造过程…

015 Spring Boot网上商城(仿天猫)

一、系统介绍 需求设计主要参考天猫商城的购物流程&#xff1a; 用户从注册开始&#xff0c;到完成登录&#xff0c;浏览商品&#xff0c;加入购物车&#xff0c;进行下单&#xff0c;确认收货&#xff0c;评价等一系列操作。 作为迷你天猫商城的核心组成部分之一&#xff0…

为什么公司里月薪八千的PLC工程师经常离职?

今日话题&#xff0c;为什么公司里月薪八千的PLC工程师经常离职&#xff1f;这个问题涉及到工程师的个人偏好和工作性质的不同。许多工程师更喜欢在一个稳定的地方工作&#xff0c;而不是经常出差。然而&#xff0c;也有一些工程师喜欢出差&#xff0c;他们更愿意在不同的现场工…