目录

1. 单值二叉树

1.1 题目链接与描述

1.2 解题思路

1.3 程序

2. 相同的树

2.1 题目链接与描述

2.2 解题思路

2.3 程序

3. 对称二叉树

3.1 题目链接与描述

3.2 解题思路

3.3 程序


1. 单值二叉树

1.1 题目链接与描述

题目链接:

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

题目描述:

如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。

只有给定的树是单值二叉树时,才返回 true;否则返回 false

1.2 解题思路

思路1:遍历法,遍历二叉树进行值的对比,若全部值相同则返回true,否则返回false;

思路2:分治法:

如果二叉树为空,则返回true;

如果二叉树非空,则依次将当前根结点的值与左右孩子结点的值进行比较,不等则返回false;

1.3 程序

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
bool isUnivalTree(struct 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;return isUnivalTree(root->left)&&isUnivalTree(root->right);
}

2. 相同的树

2.1 题目链接与描述

题目链接:

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

题目描述:

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

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

2.2 解题思路

分治思想,两棵树的根与根相比,左子树与左子树比较,右子树与右子树比较,对于每一棵子树,仍然采用根、左子树、右子树的顺序进行比较。

2.3 程序

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
bool isSameTree(struct TreeNode* p, struct TreeNode* q) {if (p == NULL && q == NULL)return true;// 一个为空一个不为空if (p == NULL || q == NULL)return false;if (p->val != q->val)return false;return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
}

3. 对称二叉树

3.1 题目链接与描述

题目链接:

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

题目描述:

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

3.2 解题思路

除根结点外,从第二层子树开始,根与根比较,一个根结点的左子树与另一个根结点的右子树比较,一个根结点的右子树与另一个根结点的左子树比较。

与第二题思路类似,为了更方便实现两棵子树的对称比较,再封装一个函数isSubSymmic,将第二层的两个结点指针作为参数传递给该函数。

3.3 程序

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
bool isSubSymmetric(struct TreeNode* leftTreeNode,struct TreeNode* rightTreeNode){if (leftTreeNode == NULL && rightTreeNode == NULL)return true;if (leftTreeNode == NULL || rightTreeNode == NULL)return false;if (leftTreeNode->val != rightTreeNode->val)return false;return isSubSymmetric(leftTreeNode->left, rightTreeNode->right)&&isSubSymmetric(leftTreeNode->right, rightTreeNode->left);
}
bool isSymmetric(struct TreeNode* root) {if (root == NULL)return true;return isSubSymmetric(root->left,root->right);
}

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

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

相关文章

软件工程画图题

目录 1.大纲 2.数据流图 3.程序流图 4.流图 5.ER图 6.层次图 7.结构图 8.盒图 9.状态转换图 10.类图 11.用例图 12.活动图 13.判定表和判定树 14.基本路径测试过程(白盒测试) 15.等价类划分(黑盒测试) 1.大纲 (1).数据流图 (2).程序流图 (3).流图 (4).ER图…

H7-TOOL自制Flash读写保护算法系列,为华大电子CIU32F003制作使能和解除算法,支持在线烧录和脱机烧录使用2025-06-20

说明: 很多IC厂家仅发布了内部Flash算法文件,并没有提供读写保护算法文件,也就是选项字节算法文件,需要我们制作。 实际上当前已经发布的TOOL版本,已经自制很多了,比如已经支持的兆易创新大部分型号&…

go channel用法

介绍 channel 在 Go 中是一种专门用来在 goroutine 之间传递数据的类型安全的管道。 你可以把它理解成: 多个 goroutine 之间的**“传话筒”**,谁往通道里塞东西,另一个 goroutine 就能接收到。 Go 语言采用 CSP(Communicatin…

openLayers切换基于高德、天地图切换矢量、影像、地形图层

1、需要先加载好地图,具体点此链接 openLayers添加天地图WMTS、XYZ瓦片服务图层、高德地图XYZ瓦片服务图层-CSDN博客文章浏览阅读31次。本文介绍了基于OpenLayers的地图交互功能实现,主要包括以下内容: 地图初始化:支持天地图XYZ…

springMVC-15 异常处理

异常处理-基本介绍 基本介绍 1.Spring MVC通过HandlerExceptionResolver处理程序的异常,包括Handler映射、数据绑定以及目标方法执行时发生的异常。 2.主要处理Handler中用ExceptionHandler注解定义的方法。 3.ExceptionHandlerMethodResolver内部若找不到Excepti…

视频汇聚EasyCVR平台v3.7.2发布:新增全局搜索、播放器默认解码方式等4大功能

EasyCVR视频汇聚平台带着全新的v3.7.2版本重磅登场!此次升级,绝非简单的功能堆砌,而是从用户体验、操作效率以及系统性能等多维度进行的深度优化与革新,旨在为大家带来更加强大、稳定且高效的视频监控管理体验。 一、全局功能搜索…

三、kubectl使用详解

三、kubectl使用详解 文章目录 三、kubectl使用详解1、常用基础命令1.1 Kubectl命令格式1.2 查询一个资源1.3 创建一个资源1.4 修改一个资源1.5 删除一个资源1.6 其他 2、K8s隔离机制Namespace(命名空间作用及使用)2.1 什么是命名空间2.2 命名空间主要作…

JVM内存模型详解

JVM内存模型详解 Java虚拟机(JVM)内存模型是理解Java程序运行机制的核心,它定义了程序运行时数据的组织方式和访问规则。与Java内存模型(JMM)关注并发不同,JVM内存模型主要描述运行时数据区的结构和功能。 一、JVM内存模型概述 JVM内存模型将运行时数…

《对话式 AI 白皮书》共创者招募

在 AI Agent 技术不断演变的当下,共创一本不断演变的对话式 AI 白皮书,共同探索人机对话的新纪元。无论你是开发者、技术专家、生态伙伴还是创业者,都期待你的加入。 项目地址:https://github.com/RTE-Dev/book_era_convoai/ 在…

Flux功能介绍,完整使用示例,与Mono对比

以下是关于Reactor框架中Flux与Mono的功能介绍、使用示例及对比分析: Flux功能介绍 核心定义 Flux是Reactor库中的核心接口,表示一个异步的、包含零到多个元素的序列(类似流式数据处理)[3][4][7]。它可以处理无限长度的数据流&am…

Git使用基本指南

一、Git 基础配置 首先需要配置用户信息,让 Git 知道你是谁: git config --global user.name "你的名字" git config --global user.email "你的邮箱example.com" 如果需要查看配置信息,可以使用: git co…

【入门】【例17.3】 内功逼毒

| 时间限制:C/C 1000MS,其他语言 2000MS 内存限制:C/C 64MB,其他语言 128MB 难度:中等 分数:100 OI排行榜得分:12(0.1分数2难度) 出题人:root | 描述 黄蓉中了毒,在 t 时…

苹果芯片macOS安装版Homebrew(亲测)

在Linux服务器上安装一个软件常用yum,apt、dnf命令,同样macOS可以使用brew命令来安装软件。 brew会自动帮你下载、解压、安装和配置,更重要的是:它还会自动处理好软件之间的依赖关系,它将所有软件都安装在独立的统一目…

uniapp+vue3做小程序,获取容器高度

小程序获能用createSelectorQuery,如果是子组件,后面可以额外加一个参数in来指定获取dom的范围。小程序里面可以直接.in(this),但是vue3没有this了,那就只能通过getCurrentInstance去获取当前实例代替this ,注意这里需…

【网工】华为配置专题进阶篇①

目录 ■浮动路由和BFD配置 ▲浮动路由 基本配置示例 ▲BFD ▲验证命令 ▲测试连通性 ■路由综合实验RIP OSPF BGP ■浮动路由和BFD配置 ▲浮动路由 浮动路由:设置preference 浮动路由是一种备份路由机制,当主路由失效时,浮动路由会…

DeepLegal AI:智能法律文档审查与合规助手+MVP

1. 商业价值与市场机会 DeepLegal AI旨在革新法律行业中耗时且资源密集型的文档审查和合规流程。该应用将利用DeepSeek先进的语言模型能力,为律师事务所、企业法务部门和合规团队提供一个高效、准确且经济的解决方案。 市场机会: 法律科技市场正经历爆…

使用 Rust 编写简单计算器

在编程语言的世界中,Rust 以其安全性和高性能而闻名。今天,我们将通过一个简单的项目来探索 Rust 的魅力 —— 编写一个简单的命令行计算器。这个计算器将支持基本的算术运算(加、减、乘、除),并且可以通过用户输入进行…

清华大学:《AI赋能教育 :高考志愿填报工具使用指南》下载

志愿填报的认知革命已经到来 “分数出来了,但不知道能上什么学校……” “喜欢这个专业,但不知道就业前景怎么样?” “到底是选热门专业还是选兴趣爱好?” 这些让百万家庭彻夜难眠的问题,你是否正在经历? …

【科技公司的管理】

如何打造高效、人性化的目标驱动型公司?——OKR管理法绩效薪酬体系全指南 你希望公司目标清晰、员工高效、多劳多得,同时避免马斯克式的“冷血管理”,兼顾员工生活需求。以下是系统性解决方案,涵盖目标设定(OKR&#x…

小白成长之路--nginx基础配置(一)

文章目录 一、概述1.1 Nginx 特点1.2 Nginx 作用1.3Nginx工作原理 二、Nginx服务搭建2.1安装2.2 目录结构2.3 配置文件作用2.4 nginx,conf配置文件详解2.5 核心命令2.6 Nginx信号三.Nginx3.1启动 总结 一、概述 Nginx 是开源、高性能、高可靠的 Web服务器 和反向代理服务器&am…