二叉树实战演练

news2024/11/25 20:34:18

目录

1.二叉树前序遍历---leetcode

思路  +   画图解析: 

2.相同的树的判断 

思路: 

3.对称二叉树 

思路分析: 

4.另一棵树的子树 

思路:

5.二叉树的便利---牛客网

建立二叉树的逻辑图:

总结: 


1.二叉树前序遍历---leetcode

思路  +   画图解析: 

题目要求是将前序遍历的结果放入一个数组里面去,而且leetcode很特殊的就是如果要返回一个数组,那么就必须返回这个数组的大小,所以他给出的接口,一个树这个二叉树的根,还有一个是

这个数组的大小,而且提示说我们还要开创这个数组,需要动态申请,但是,我们也不知道这个二叉树有多少数据,我们就必须先得到这个二叉树的大小,然后将其按照前序顺序放入数组。先知道二叉树的大小,我们创建一个函数来获取。 

如上图所示,我们使用了一个三目表达式,如果根为空,就返回0,如果不为空,就返回他的左节点数 + 右节点数 + 1 。这样我们就能得到这个二叉树的大小了。得到 大小之后就是开辟数组的空间了。

 开辟好数组以后我们就要将这个二叉树按照前序的顺序放入数组了。为了让答案更加清晰可见,我们再封装一个函数将二叉树填入数组。因为我们如果将 i  这个变量在函数里面设值的话就会导致每当执行这个函数时这个变量就要设置一次,为了防止这种现象的发生,我们就要使用传递指针的办法,传递指针可以从根本上解决这个问题,这就是这个题目唯一的难点。

这就是这个题目的最后的结果,我画了这个题目的递归解析图,大家不懂这个代码的意思的时候可以借鉴这个解析图来帮助大家理解,同样,大家也可以画这个图来帮助理解。 

2.相同的树的判断 

这一题的难度较低,我们直接将思路。

思路: 

首先,我们要比较两个根是不是同时为空,是,则返回true,否,则返回false。如果这两个值相同,则往下继续比较,如果不同则返回false。思路简单,代码也简单,我们看代码。

3.对称二叉树 

思路分析: 

其实这题想起来还有点难,但是只要想对了,也就很简单,对称二叉树,我们仔细一点就可以发现其实是先让根和根比较,然后比较根的左节点和另一个根的右节点,就可以得出是不是对称二叉树了。其实也和上面的比较相同的树有点像。

还没有左孩子和右孩子的时候我们就将根和根比较,完全不会影响。 

4.另一棵树的子树 

思路:

这一题就是在树里找树,其实这一题的思路很简单,就是运用我们前面实现的相同的树的判断,当遇到的根节点的值和subroot的根节点的值相同的时候,我们就可以用相同树的判断,如果真的是同一棵树的话就返回true。那么,我们想要这些节点,那就将所有的根节点都遍历一遍和subroot的根节点比较。思路就是这样,我们开始实现。 这就是这个题目的解法。和前面的知识夹杂着一起考察。

5.二叉树的便利---牛客网

 这一题的大概意思是这样的,题目给了我们一个字符串,#代表的是NULL,然后让我们根据这个字符串去建立一个二叉树,并且用中序的方法将他输出到我们的屏幕上。所以我们要做这样几件事,第一,我们要根据字符串来建立一个二叉树,第二,根据二叉树用中序输出。

建立二叉树的逻辑图:

 我们获得一个字符串怎么将他建立成一个二叉树呢?

这个图就是按照前序的方法,将其建立成一个二叉树,大家可以按照我再上面标记的箭头来捋清楚这个思路。

这个就是按照我上面的思路写出的代码。

总结: 

这五个题目都是围绕二叉树的题目,围绕二叉树的题目自然离不开递归思想,这个在五个题目里面每个都有用到,也是我们必须掌握的思想。望大家看了这篇文章之后都能有一定的收获。

一起加油吧!!! 

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

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

相关文章

【嵌入式软件工程师面经】Socket,TCP,HTTP之间的区别

目录: 目录 目录: 一、Socket原理与TCP/IP协议 1.1 Socket概念: 1.2 建立Socket连接: 1.3 SOCKET连接与TCP/IP连接 二、HTTP连接: 2.1 HTTP原理 三、三者的区别和联系 前些天发现了一个巨牛的人工智能学习网站&#xf…

光伏电站在线监测智能诊断系统:开启无人值守新纪元

光伏电站在线监测智能诊断系统:开启无人值守新纪元 大家都知道光伏电站是通过汲取着太阳的光芒,为人类提供源源不断的电能源。然而,随着光伏电站规模的扩大和复杂性的增加,如何有效提高发电效率、减少人工维护成本,实…

力扣Hot100-73矩阵置零(标记数组)

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2: 输入&…

3、md5比较绕过

青少年ctf:EasyMD5 1、页面是一个上传页面 2、上传两个txt文件,bp抓包 3、go发现提示要PDF文件 4、将文件类型改成PDF类 5、改文件类型提示MD5,也看出它是将文件里的内容读取比较 6、改成s878926199a和QNKCDZO 猜测后端源码: if…

水下哨兵 智能守护——北斗人员落水报警与快速应急响应方案

随着科技的不断发展,人们对于安全的需求也越来越高,尤其是在水域活动中,落水事故时有发生,给人们的生命和财产安全带来了很大威胁。为了更好地保障水域活动者的安全,北斗短报文技术被广泛应用于落水报警系统中&#xf…

SpringBoot 实现私钥解密 前端的公钥加密内容

目录 一、前端公钥加密 二、后端私钥解密 一、前端公钥加密 Nextjs 前端实现RSA公钥加密 JSEncrypt加载问题解决-CSDN博客 二、后端私钥解密 import javax.crypto.Cipher; import java.security.KeyFactory; import java.security.PrivateKey; import java.security.spec.…

重新夺回控制权!原创始人从Synk回购FossID,致力于解决开源许可合规风险

FossID 于 2022 年 9 月被其原始创始人从 Snyk, Inc. 重新收购。为什么 Snyk 在 2021 年收购了 FossID,又在 2022 年将其分拆,以及为什么 FossID 的创始人(Oskar Swirtun 和 Jon Aldama)后来又回购了该公司? 公司背景 …

word-表格疑难杂症诊治

一、用表格进行排版图片、制作公文头 可以在插入图片时固定列宽 二、表格中的疑难杂症 问题一:表格超过页面,右侧文字看不见 解决:表格窗口-布局-自动调整-根据窗口自动调整表格 问题二:表格底部文字被遮挡 解决:布…

舵机(结构,原理,控制方法)

介绍 舵机,全称为伺服马达(Servo Motor),是一种能够精确控制角度或位置的电动机。它广泛应用于模型制作、机器人技术、工业自动化等领域。舵机通过接收控制信号,将其转化为机械运动,从而实现精确的控制。 …

Day38 贪心算法part05

LC435无重叠区间(未掌握) 思路:先对数组进行排序,找到非重叠的区间的个数,然后区间的总数减去非重叠区间的个数即是需要移除的区间的个数与LC452用最少数量的箭引爆气球类似,但是不同的是[1,2]和[2,3]在此题并不是重叠区间但是在…

Substrate 优秀学员专访|从前端到高级测试工程师,他坚定奔赴 Web3 红海

4 月 29 日,第 14 期「Substrate 区块链开发入门课」课程圆满毕业收官,课程涌现了新一批优秀毕业学员,他们即将带着自己在课程中学习的新知识、新经验,奔赴 Web3 行业各个赛道。在这些学员中,有这样一位开发实力突出、…

JVM运行时内存:垃圾回收器(Serial ParNew Parallel )详解

文章目录 1. 查看默认GC2. Serial GC : 串行回收3. ParNew GC:并行回收4. Parallel GC:吞吐量优先 1. 查看默认GC -XX:PrintCommandLineFlags:查看命令行相关参数(包含使用的垃圾收集器)使用命令行指令:ji…

【每日刷题】Day48

【每日刷题】Day48 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 872. 叶子相似的树 - 力扣(LeetCode) 2. 114. 二叉树展开为链表 - 力扣&…

域名解析服务器(DNS)

目录 简介 DNS 域名 域名结构 域名服务器类型 相关指令 实验内容 软件 实验准备 正向解析实验 服务端操作 客户端操作 逆向解析实验 服务端操作 客户端操作 简介 DNS DNS(Domain Name System)时互联网上的一项服务,作为将域名和IP地址互相映射的一个分布式数据…

VUE2 tab切换导航 展示页面内容(父级子级独立)

VUE2 tab切换导航 展示页面内容 父级子级独立 图片示例代码 图片示例 代码 <template><div class"center"><!-- 一级导航 --><div class"menu"><div class"menu_list"><div v-for"item of List" :k…

elementUI使用el-tabs加el-form导致页面崩溃以及el-form里的input事件丢失问题

elementUI使用el-tabs加el-form导致页面崩溃以及el-form里的input事件丢失问题 解决 el-form外面包一层el-row和el-col&#xff0c;el-tabs也包一层 el-fom e-tabs

SpringBootWeb 篇-深入了解 Mybatis 概念、数据库连接池、环境配置和 Lombok 工具包

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文件目录 1.0 Mybatis 概述 2.0 数据库连接池 2.1 数据库连接池的主要作用包括 2.2 如何切换数据库连接池&#xff1f; 3.0 配置环境 4.0 Lombok 工具包 4.1 如何导入到项目中呢…

IDEA 上方添加左右箭头按钮

IDEA 版本&#xff1a;2021.3.3 按钮&#xff1a; 左箭头&#xff08;Back&#xff09;&#xff08;快捷键&#xff1a;Ctrl Alt 左箭头&#xff09; 右箭头&#xff08;Forward&#xff09;&#xff08;快捷键&#xff1a;Ctrl Alt 右箭头&#xff09; 日常写代码中经常…

Predictable MDP Abstraction for Unsupervised Model-Based RL

ICML 2023 paper code Intro 文章提出了一种用于无监督基于模型强化学的方法&#xff0c;称为可预测MDP抽象&#xff08;Predictable MDP Abstraction, PMA&#xff09;。在MBRL中&#xff0c;一个关键部分是能够准确建模环境动力学动态模型。然而&#xff0c;这个预测模型误…

【传知代码】transformer-论文复现

文章目录 概述原理介绍模型架构 核心逻辑嵌入表示层注意力层前馈层残差连接和层归一化编码器和解码器结构 数据处理和模型训练环境配置小结 本文涉及的源码可从transforme该文章下方附件获取 概述 Transformer模型是由谷歌在2017年提出并首先应用于机器翻译的神经网络模型结构…