今天笔者带领读者做几道链式二叉树OJ题目,希望读者和笔者一起思考!

1.965. 单值二叉树 - 力扣(LeetCode)

这道题思路不难想,首先知道单值二叉树的定义:所有结点的值都相同,传入的是第一个根节点root,然后考虑几种情况,如果是NULL,那么这是一颗空树,也 满足单值二叉树的要求,所以这种情况直接 返回true,然后考虑整个二叉树,二叉树有左子树,右子树,所以直接比较二叉树一个结点的左右孩子结点即可,如果不等,那就返回false,如果相等,那就继续往下比,下面展示一下笔者写的代码:

2.100. 相同的树 - 力扣(LeetCode)

其实这道题目思路不难想到,无非就是先说特殊情况,然后进行一些递归操作即可:

3.101. 对称二叉树 - 力扣(LeetCode)

还是老规矩,先判断为空,之后为了方便,我们封装一个辅助函数,然后返回的情况其实就很显然了:

4.144. 二叉树的前序遍历 - 力扣(LeetCode)

由于前序中序后序遍历并无太大 差别,故笔者着重详解一下前序遍历,中序后序留给读者自行练习。这道题首先需要先理解题意,其实意思就是让我们用一个数组存储这个二叉树按照前序遍历的顺序访问的结点,所以观察需要完成的函数,我们需要提供一个returnsize,这其实是由于leetcode的原因,传数组时必须把数组的大小也传进去,也叫输出型参数,综上所述,我们需要单独求出数组的大小,而这这个数组的求法显然需要用malloc函数,创建完数组之后就需要考虑进行前序遍历,下面先给读者看一下笔者的代码:

笔者首先求了一个TreeSize,这是因为后面申请内存的时候不会造成浪费,这里需要记住的是returnSize是一个 指针,需要解引用才能当作数组,然后一个很易错的点就是i,相信读者会有 一个问题,为什么i要传入一个指针呢?为什么不能直接传入i呢?其实这个问题在之前的文章中笔者提到过,递归实际上是栈帧问题,通俗理解就是每个副本都会有一个新的i,那些不用的副本中的i始终从1开始,这就会导致混乱,因此需要传入指针,可以理解为传入指针会让根本改变,因为地址找到的东西是固定的,相信到这读者都能理解笔者这么写的原因了。

5.94. 二叉树的中序遍历 - 力扣(LeetCode)

6.145. 二叉树的后序遍历 - 力扣(LeetCode)

7.572. 另一棵树的子树 - 力扣(LeetCode)

以笔者的习惯,还是先看题目给的函数,传入了两个指针。先判断第一种情况,二者是不是一棵树,如果是一棵树的话那么直接返回true即可,然后就是root为空结点的情况,空结点直接返回false即可,因为空树不可能有子树,然后就是很正常的递归操作了,和之前同理,即可,下面给读者看一下笔者的代码:

8.二叉树遍历_牛客题霸_牛客网

ok,这就是本文的最后一道题,这道题比较综合,不难理解,这道题的本质是先按照前序创一个二叉树,然后中序遍历,把遍历结果储存起来,其实这道题就是把之前讲过的东西结合在了一起,读者自行完成。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ECharts】2. ECharts 性能优化

动态(按需)加载异步子组件 之前说过 ECharts 如何封装,今天来讲一讲 ECharts 如何做性能优化。 对于之前 ECharts 的封装子组件,我们可以使用 component 动态组件的方式进行渲染,并传参。 并且使用 import 动态导入搭配 defineAsyncCompon…

如何创建自己的 Minecraft 世界

步骤1:准备虚拟服务器运行以下命令来更新系统的软件包列表并应用所有待处理的升级:sudo apt update sudo apt upgrade -y您的系统已更新完毕,您已准备好进行下一步。第 2 步:安装依赖项并创建安全用户LinuxGSM 需要一些软件才能正…

vue中监听页面滚动位置

vue中监听页面滚动位置问题描述实现代码1. 获取页面被卷起的高度2. 监听滚动事件问题描述 页面滚动到指定位置时,展示侧边栏导航。 实现代码 1. 获取页面被卷起的高度 使用 e.target.scrollTop可以获取到页面向上滚动了多少像素,代码如下:…

docker:compose

docker三剑客:compose、swarm、machinemachine是在不同环境(不同的操作系统平台上安装)下部署docker的compose是做容器编排的swarm是做docker集群管理的Compose 简介口任务( task ) : 一个容器被称为一个任…

GaussDB 数据库架构师修炼(十八) SQL引擎-计划管理-SQL PATCH

1 业务背景GaussDB的优化器生成计划不优的情况下,对DBA调优过程中不对业务sql修改场景下,提供3种计划管理,分别为plan hint,sql patch,spm。2 sql patch的使用场景在发现查询语句的执行计划、执行方式未达预期的场景下,可以通过创…

函数式编程从入门到精通

1.概述1.1为什么学&#xff1f;* 能够看懂公司里的代码 * 大数量下处理集合效率高 * 代码可读性高 * 消灭嵌套地狱//查询未成年作家评分在70分以上的书籍&#xff0c;由于流的影响所以作家和书籍可能会重复出现&#xff0c;所以要去重public void test1() {List<Book> bo…

Overleaf 中文报错和中文不显示问题的解决方案

Overleaf是一个很方便的在线latex编辑工具。但在最初使用Overleaf的时候&#xff0c;是不是有很多小伙伴会遇到模板中中文报错或者中文不显示的问题呢&#xff1f; 本文将带你一步步解决这个问题~ 中文报错 在点击重新编译按钮后&#xff0c;中文报错问题一般会有如下图红框显示…

前后端联调场景以及可能会遇到的问题

一、异地和在一起办公的方式 首先&#xff0c;在一起办公&#xff08;同局域网&#xff09;的情况&#xff0c;最常用的应该是直接使用后端的局域网 IP 进行联调&#xff0c;因为同一网络内设备可以直接通信。步骤方面&#xff0c;需要后端提供 IP 和端口&#xff0c;前端配置…

【T113自制板卡】1 - 原理图说明

文章目录1、前言2、板卡资源总览3、电源3.1、板卡供电3.2、电源方案4、OTG接口5、调试串口6、用户LED7、FLASH8、按键9、BLE MESH10、Wi-Fi11、MIC12、喇叭接口13、MIPI接口1、前言 这几天跟着小智学长的课程画了一块t113的板子。本文将描述该板卡的硬件说明。 2、板卡资源总…

WiFi有网络但是电脑连不上网是怎么回事?该怎么解决?

有时候&#xff0c;咱们用电脑上网&#xff0c;打开WiFi一看&#xff0c;信号满格&#xff0c;状态栏显示已连接&#xff0c;本来想着可以愉快地看个番、查个资料、玩个游戏了&#xff0c;结果一打开浏览器&#xff0c;直接完犊子了&#xff0c;网页都打不开。这时候再看状态&a…

【golang】制作linux环境+golang的Dockerfile | 如何下载golang镜像源

一、关于如何下载docker images 这里需要大家自行科学上网如果没有话&#xff0c;下面可以使用我自行打包的golang 的docker images 注意科学上网要开启TUN模式二、golang镜像源 1、阿里云公开镜像 如果找不到golang包的小伙伴可以使用我的公开阿里镜像docker pull registry.cn…

Day58 Java面向对象13 instanceof 和 类型转换

Day58 Java面向对象13 instanceof 和 类型转换 1.instanceof关键字 instanceof关键字的作用是判断一个对象是否是某个类或其子类的实例,它返回一个布尔值true/false dog1 instanceof Dog; //返回true dog1 instanceof Animals; //返回true dog1 instanceof Object; //返回…

GEO优化案例:如何通过“知识图谱+权威信号”提升品牌AI信任度

引言&#xff1a; “在AI日益成为用户信息入口的今天&#xff0c;品牌信息能否被AI赋予‘权威’标签&#xff0c;直接决定了其在搜索结果中的可见度和用户采信度。移山科技正是这方面的专家。” 一、行业趋势概览&#xff1a;AI时代的品牌信任与GEO的价值 2025年&#xff0c…

让数据可视化更简单:Embedding Atlas使用指南

Embedding Atlas&#xff1a;交互式的嵌入可视化工具 在大数据时代&#xff0c;如何有效地理解和利用高维数据变得愈发重要。Embedding Atlas 是一款致力于提供大型嵌入&#xff08;embeddings&#xff09;交互式可视化的工具&#xff0c;允许用户对嵌入数据进行可视化、交叉过…

复杂场景鲁棒性突破!陌讯自适应融合算法在厂区越界检测的实战优化​

一、行业痛点&#xff1a;越界检测的复杂场景挑战 工业厂区周界安防中&#xff0c;越界检测极易受环境干扰。据《2024工业智能安防白皮书》统计&#xff08;注1&#xff09;&#xff0c;强逆光、雨雾天气导致传统算法误报率超35%&#xff0c;而密集设备遮挡造成的漏检率高达28…

Huggingface入门实践 Audio-NLP 语音-文字模型调用(一)

吴恩达LLM-Huggingface_哔哩哔哩_bilibili 目录 0. huggingface 根据需求寻找开源模型 1. Whisper模型 语音识别任务 2. blenderbot 聊天机器人 3. 文本翻译模型translator 4. BART 模型摘要器&#xff08;summarizer&#xff09; 5. sentence-transformers 句子相似度 …

Python-Pandas GroupBy 进阶与透视表学习

​​一、数据分组&#xff08;GroupBy&#xff09;​​​​核心概念​​&#xff1a;将数据按指定字段分组&#xff0c;对每组进行聚合、转换或过滤操作。​​1. 分组聚合&#xff08;Aggregation&#xff09;​​将分组数据聚合成单个值&#xff08;如平均值、总和&#xff09…

MQTT 核心概念与协议演进全景解读(二)

MQTT 在物联网中的应用实例智能家居中的设备联动在智能家居系统里&#xff0c;MQTT 协议扮演着至关重要的角色&#xff0c;是实现设备间高效通信与智能联动的核心枢纽。以常见的智能家居场景为例&#xff0c;当清晨的阳光缓缓升起&#xff0c;光线传感器检测到光照强度的变化&a…

燧原科技招大模型训练算法工程师

高级大模型训练算法工程师&#xff08;岗位信息已经经过jobleap.cn授权&#xff0c;可在csdn发布&#xff09;燧原科技 上海职位描述负责大模型在AI芯片预训练和微调等研发和客户支持工作&#xff1b; 参与大模型训练精度分析和性能调优&#xff1b;职位要求985/211大学计算机…

基于Java虚拟线程的高并发作业执行框架设计与性能优化实践指南

基于Java虚拟线程的高并发作业执行框架设计与性能优化实践指南 一、技术背景与应用场景 在分布式系统和微服务架构中&#xff0c;后端常需承载海量异步作业&#xff08;如批量数据处理、定时任务、异步消息消费等&#xff09;&#xff0c;对作业执行框架提出了高并发、高吞吐、…