当前位置: 首页 > news >正文

【初阶数据结构篇】二叉树OJ题

文章目录

须知

💬 欢迎讨论:如果你在学习过程中有任何问题或想法,欢迎在评论区留言,我们一起交流学习。你的支持是我继续创作的动力!

👍 点赞、收藏与分享:觉得这篇文章对你有帮助吗?别忘了点赞、收藏并分享给更多的小伙伴哦!你们的支持是我不断进步的动力!
🚀 分享给更多人:如果你觉得这篇文章对你有帮助,欢迎分享给更多对C++感兴趣的朋友,让我们一起进步!

1. 题目一(单值二叉树)
1.1 题目链接:

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

1.2 题目描述

补充:

 根节点与左右孩子的数值进行比较,如果相等依次递归左右子树,如果为空,或者两者对应的值相等,则返回true。若不相等则直接返回false。

1.3 示例代码:
class Solution {
public:bool isUnivalTree(TreeNode* root) {if(root==NULL){return true;}if(root->left&&root->left->val!=root->val){return false;}if(root->right&&root->right->val!=root->val){return false;}if(isUnivalTree(root->left)&&isUnivalTree(root->right))return true;else{return false;}}
};
2. 题目2(相同的树)
2.1 题目链接:

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

2.2 题目描述

给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

补充:

题目解析:

将两个数的根节点的值依次比较,依次递归两根节点的左子树,若根节点为空,直接返回true,或两根节点对应的值相等也返回true,对应的值不相等或一个根节点为空而另一个不为空直接返回false。 

2.3 示例代码:
class Solution {
public:bool isSameTree(TreeNode* p, TreeNode* q) {if(p==NULL&&q==NULL){return true;}if(p==NULL||q==NULL){return false;}if(p->val!=q->val){return false;}if(isSameTree(p->left,q->left)&&isSameTree(p->right,q->right))return true;else{return false;}}
};
3. 题目3(对称二叉树)
3.1 题目链接:

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

3.2 题目描述

给你一个二叉树的根节点 root , 检查它是否轴对称。

 

可以将该二叉树看成两个独立的二叉树,分别将“两个二叉树”的根节点传入,判断该是否为相同的二叉树。

3.3 示例代码:
 
bool isSameTree(TreeNode* p, TreeNode* q) {if(p==NULL&&q==NULL){return true;}if(p==NULL||q==NULL){return false;}if(p->val!=q->val){return false;}if(isSameTree(p->left,q->right)&&isSameTree(p->right,q->left))return true;else{return false;}
}class Solution {
public:bool isSymmetric(TreeNode* root) {return isSameTree(root->left,root->right);}
};
4. 题目4(另一棵树的子树)
4.1 题目链接:

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

4.2 题目描述:

给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。

二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。

依次递归每个节点,将每个节点与SunRoot判断是否相等即可。

4.3 示例代码:
bool isSameTree(TreeNode* p, TreeNode* q) {if(p==NULL&&q==NULL){return true;}if(p==NULL||q==NULL){return false;}if(p->val!=q->val){return false;}if(isSameTree(p->left,q->left)&&isSameTree(p->right,q->right))return true;else{return false;}
}class Solution {
public:bool isSubtree(TreeNode* root, TreeNode* subRoot) {if(root==NULL){return false;}if(isSameTree(root,subRoot)){return true;}return( isSubtree(root->left,subRoot)||isSubtree(root->right,subRoot));}
};
5. 题目5(二叉树前序遍历)
5.1 题目链接:

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

5.2 题目描述

给你二叉树的根节点 root ,返回它节点值的 前序 遍历。

 

给二叉树中节点总数开空间,根据根左右原则依次递归将数据尾插入数组中,直接返回这个数组即可。

5.3 示例代码:
typedef struct TreeNode TreeNode;int TreeSize(TreeNode* root){if(root==NULL){return 0;}return 1+TreeSize(root->left)+TreeSize(root->right);}void _preorderTraversal(TreeNode* root,int* returnArr,int* pi)
{if(root==NULL){return ;}returnArr[(*pi)++]=root->val;_preorderTraversal(root->left,returnArr,pi);_preorderTraversal(root->right,returnArr,pi);
}int* preorderTraversal(struct TreeNode* root, int* returnSize) {*returnSize=TreeSize(root);int* returnArr=(int*)malloc(sizeof(int)*(*returnSize));int i=0;_preorderTraversal(root,returnArr,&i);return returnArr;
}

 

相信通过这篇文章你对二叉数OJ题的有了进一步的了解。如果此篇文章对你学习数据结构(二叉树)有帮助,期待你的三连,你的支持就是我创作的动力!!!

下一篇文章再会!!!

相关文章:

【初阶数据结构篇】二叉树OJ题

文章目录 须知 💬 欢迎讨论:如果你在学习过程中有任何问题或想法,欢迎在评论区留言,我们一起交流学习。你的支持是我继续创作的动力! 👍 点赞、收藏与分享:觉得这篇文章对你有帮助吗&#xff1…...

Windows系统中Oracle VM VirtualBox的安装

一.背景 公司安排了师带徒,环境搭建问题一直是初级程序员头疼的事情,我记录一下这些基础的内容,方便初学者。大部分开发者的机器还是windows系统,所以写了怎么安装。 二.版本信息及 操作系统:windows11 家庭版…...

go语言使用总结(持续更新)

整理后的内容如下: 1. 先了解函数签名,再了解传入参数以及调用 函数签名是函数的声明部分,包括函数名、参数列表和返回值列表。理解函数签名是理解函数行为的第一步,尤其是在了解参数类型、参数数量和返回值类型等方面。通过了解…...

如何在Android中自定义property

在Android中创建自定义的属性(Android property)通常用于调试、性能调优或传递应用和系统之间的信息。 以下是如何在Android中创建和使用自定义属性的步骤: 1. 定义属性 在Android中,属性是以“属性名称属性值”形式定义的键值对…...

机器学习5_支持向量机_原问题和对偶问题——MOOC

目录 原问题与对偶问题的定义 定义该原问题的对偶问题如下 在定义了函数 的基础上,对偶问题如下: 综合原问题和对偶问题的定义得到: 定理一 对偶差距(Duality Gap) 强对偶定理(Strong Duality Theo…...

索引的细节

目录 什么是线性 搜索算法? 算法:二进制搜索算法 二进制搜索如何工作? 什么是二叉排序树? 构建二叉排序树 什么是AVL树? AVL树的性能分析 什么是线性 搜索算法? 线性搜索是一种非常简单的搜索算法。在…...

LeetCode 540.有序数组中的单一元素

思路一:hash,键存入元素,值存入次数,然后遍历,不是最优解 思路二:二分查找 假设数组为 [1, 1, 2, 2, 3, 4, 4],其中唯一出现一次的元素是 3。在一个有序数组中,如果没有唯一的元素&…...

【图文】【DIY便签】如何自行编译OPENCV使用动态库

1 去官网下载安装包和源码 下面红色圈中的是源码,绿色圈中的是安装包: 2 配置工具链 安装过程不说了,教程到处都是。编译的话使用CMAKE,配置如下: 上面两个路径分别是: 源码目录编译生成的文件放置的位…...

WordPress文章自动提交Bing搜索引擎:PHP推送脚本教程

随着网站SEO优化的重要性日益增加,将新发布的内容快速提交到搜索引擎显得尤为重要。尤其对于Bing站长平台,自动化推送能让Bing尽快发现和索引我们网站的新内容。本文将详细介绍如何通过PHP脚本自动推送WordPress当天发布的文章至Bing站长平台,确保新文章被Bing及时收录。 前…...

C++题目分享

嗨嗨嗨,我又来更新这个系列了,很久没更新了。让我们看一看有那些有趣的题目: 题目一: 1.以单链表作为存储结构,实现线性表的就地逆置(提示,就地逆置:在不使用额外的数据结构或空间…...

【Spring 框架】初识 Spring

文章目录 前言1. 什么是 Spring2. 什么是 Maven3. 第一个 SpringBoot 项目4. 项目讲解结语 前言 在前面我们一起学习了 JavaSE 的基础知识,随着学习的深入,我们也将逐步介绍 JavaEE 的内容,像 Spring 框架,Mybatis 等等。在本篇博…...

链表(Linkedlist)

序言 我们都了解链表是一种数据的存储结构,在Java使用中逻辑与c,c语言数据结构别无二致,但主要由于Java中不存在指针的说法,从而导致在实现过程中的代码不同,所以在学习的过程中我们无需过于担心,逻辑都是…...

信息安全工程师(79)网络安全测评概况

一、定义与目的 网络安全测评是指参照一定的标准规范要求,通过一系列的技术、管理方法,获取评估对象的网络安全状况信息,并对其给出相应的网络安全情况综合判定。其对象主要为信息系统的组成要素或信息系统自身。网络安全测评的目的是为了提高…...

保研考研机试攻略:python笔记(3)

🐨🐨🐨11sort 与 sorted 区别 sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。 list 的 sort 方法返回的是对已经存在的列表进行操作, 无返回值,而内建函数 sorted 方法返回的…...

刘卫国MATLAB程序设计与应用课后答案PDF第三版

刘卫国《MATLAB程序设计与应用》(第三版)是对普通高等教育“十一五”国家级规划教材《MATLAB程序设计与应用》(第二版)的一次全面修订。全书总体保持第二版原有体系结构,但根据技术发展和应用的需要扩充了许多新内容。全书强调数学方法、算法…...

【鉴权】Web 会话管理:Cookie、Session 和 Token 深度对比

目录 引言一、Cookie二、Session三、Token (JWT)四、总结对比五、Token、Session 和 Cookie 的选择总结 引言 在现代 Web 开发中,Cookie、Session 和 Token 都是用于用户身份验证和状态管理的常见技术。每种技术有其特定的应用场景和优缺点,理解它们之间…...

ArkTS--应用状态

应用状态 应用状态相关的内容需要使用模拟器或真机调试,在API 11开始也支持preview 1.LocalStorage LocalStorage是页面级的UI状态存储,通过Entry装饰器接收参数可以在页面内共享数据 1.1 页面内共享数据 import {MyUser} from ../model/MyUser //用户对…...

yolov8涨点系列之引入CBAM注意力机制

文章目录 YOLOv8 中添加注意力机制 CBAM 具有多方面的好处特征增强与选择通道注意力方面空间注意力方面 提高模型性能计算效率优化: yolov8增加CBAM具体步骤CBAM代码(1)在__init.pyconv.py文件的__all__内添加‘CBAM’(2)conv.py文件复制粘贴CBAM代码(3)修改task.py…...

java标准JavaBean类

1. public class test {//属性private String username;private String password;private String email;private String gender;private int age;//快捷键//altinsert//altFninsert//插件PTG1秒生成标准Javabean //插件ptg c//空参public test() {}//全部参数…...

MATLAB界面设计全攻略:从基础入门到高级应用

引言 MATLAB作为一种功能强大的科学计算软件,不仅可以进行各种复杂的数值计算,还可以通过其图形用户界面设计工具(GUI)为用户提供可视化操作界面。本教程旨在详细介绍MATLAB界面设计的全过程,为初学者提供从入门到精通…...

JavaScript API部分知识点

一、Dom获取&属性操作 (一)、 Web API 基本认知 1、变量声明 const 声明的值不能更改,而且const声明变量的时候需要里面进行初始化 但是对于引用数据类型,const声明的变量,里面存的不是 值,是 地址…...

钉钉调试微应用整理2

第一步 新建应用 钉钉开放平台](https://open-dev.dingtalk.com/) 去新增应用 第二步 配置应用信息 把本地代码运行起来&#xff0c;并设置本地地址 第三步 在本地代码添加调试命令 这里有2中添加方式 哪一种都可以 方式一&#xff1a; index.html页面中 <!DOCTYPE h…...

C++初级入门(1)

第一部分 基础语法入门 一、基础 1、变量与常量 1、变量 变量存在的意义:方便管理内存空间 2、常量 用于记录程序中不可更改的数据 #define 常量名 常量值 const 数据类型 常量名常量值 ; 2、数据类型 1、整型 short 2字节 int 4字节 long Wi…...

group_concat配置影响程序出bug

在 ThinkPHP 5 中&#xff0c;想要临时修改 MySQL 数据库的 group_concat_max_len 参数&#xff0c;可以使用 原生 SQL 执行 来修改该值。你可以通过 Db 类来执行 SQL 语句&#xff0c;从而修改会话&#xff08;Session&#xff09;级别的变量。 步骤 设置 group_concat_max_l…...

将Go项目编译为可执行文件(windows/linux)

windows 编译成windows环境exe可执行文件过程&#xff0c;打开文件所在目录&#xff0c;在资源路径框中输入cmd&#xff0c;打开cmd命令框&#xff0c;通过“go env”查看当期环境变量&#xff0c;以windows10环境为例&#xff0c;默认为windows环境。 // 配置环境变量 SET C…...

IMS高压发生器维修高压电源维修XRG100/1000

IMS高压发生器的硬件组成&#xff1a; 高压控制发生器主要由高压发生器和高压控制器两部分组成。高压控制器是控制调节X射线管管电压和管电流的机构,高压发生器是管电压和管电流产生的执行机构,通过高压控制器对高压发生器进行控制调节,通过高压电缆将高压发生器与X射线管连接…...

斯坦福泡茶机器人DexCap源码解析:涵盖收集数据、处理数据、模型训练三大阶段

前言 因为我司「七月在线」关于dexcap的复现/优化接近尾声了&#xff0c;故准备把dexcap的源码也分析下。​下周则分析下iDP3的源码——为队伍「iDP3人形的复现/优化」助力 最开始&#xff0c;dexcap的源码分析属于此文《DexCap——斯坦福李飞飞团队泡茶机器人&#xff1a;带…...

RabbitMQ的DLX(Dead-Letter-Exchange 死信交换机,死信交换器,死信邮箱)(重要)

RabbitMQ的DLX 1、RabbitMQ死信队列2、代码示例2.1、队列过期2.1.1、配置类RabbitConfig&#xff08;关键代码&#xff09;2.1.2、业务类MessageService2.1.3、配置文件application.yml2.1.4、启动类2.1.5、配置文件2.1.6、测试 2.2、消息过期2.2.1、配置类RabbitConfig2.2.2、…...

【STM32F1】——舵机角度控制与TIM定时器

【STM32F1】——舵机角度控制与TIM定时器 一、简介 本篇主要对舵机DS-S002M模块调试过程进行总结,实现了以下功能: 1)舵机转动角度的控制:利用STM32F103C8T6的TIM定时器产生PWM信号控制舵机DS-S002M转动一定的角度。 二、DS-S002M数字舵机介绍 电压:4.8-6.0V操作角度:…...

想要成为独立游戏作者 :通关!游戏设计之道 2-1 HUD

HUD特指显示屏幕上的信息&#xff0c;在是UI的子集&#xff0c;UI是一个游戏中虽有的交互元素的总称 本文用了大量ai总结 &#xff0b; 个人微调&#xff0c;不喜勿喷&#xff0c;前篇如下想要成为独立游戏作者 &#xff1a;通关&#xff01;游戏设计之道 1-4 操作篇-C…...

2017做网站挣钱/社交媒体营销案例

2019独角兽企业重金招聘Python工程师标准>>> MySQL无法重启、无法关闭、无法启动、无法使用&#xff0c;如果是因为修改了主机名&#xff0c;可以这样解决&#xff1a;关闭掉所有MySQL进程&#xff0c;然后在启动一下MySQL。 今天无事看到自己的主机名不对&#xff…...

如何建一个自己网站/今天新闻最新消息

1.拦截器实现登录验证判断 1.1 实现思路 1、有一个登陆页面&#xff0c;需要写一个controller访问页面。2、登陆页面有一提交表单的动作。需要在controller中处理。判断用户名密码是否正确。如果正确&#xff0c;向session中写入用户信息。返回登陆成功。3、拦截用户请求&…...

国家精品课程建设工作网站/珠海百度搜索排名优化

车漆的效果除了基础的pbr效果&#xff0c;上面还可以添加两层额外的效果。一层是清漆的效果&#xff0c;另一层就是薄膜干涉的效果。 这个就是薄膜干涉的效果&#xff0c;可以明显的看出来颜色被分散开来。 这里图片是取自https://zhuanlan.zhihu.com/p/67763458 大佬的知乎…...

一键建站源码/百度推广业务员电话

最近在做一个物业的系统&#xff0c;需要通过excel上传业主的信息&#xff0c;解析并入库。参考&#xff1a;https://www.cnblogs.com/jyyjava/p/8074322.html话不多说&#xff0c;直接上核心代码import org.apache.poi.hssf.usermodel.HSSFDateUtil;import org.apache.poi.hss…...

wordpress 仪表盘隐藏/百度网盘服务电话6988

一、存储结构 1、平衡树&#xff08;B-树&#xff09; 平衡树或B- 树仅仅是提供了一种以一致且相对低成本的方式查找特定信息的方法&#xff0c;其名称中的“平衡”是自说明的。平衡树是自平衡的&#xff…...

辽宁城乡建设集团网站/海外市场推广做什么的

2019独角兽企业重金招聘Python工程师标准>>> 基于 Selenium 的 Web 应用性能测试系统设计与实现:http://www.doc88.com/p-9025927109914.html 转载于:https://my.oschina.net/CeShiXiaoSongShu/blog/652104...