【C++】每日一题 100 相同的树

给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的

#include <iostream>// Definition for a binary tree node.
struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};class Solution {
public:bool isSameTree(TreeNode* p, TreeNode* q) {if (p == nullptr && q == nullptr) {return true;}if (p == nullptr || q == nullptr) {return false;}return (p->val == q->val) && isSameTree(p->left, q->left) && isSameTree(p->right, q->right);}
};int main() {// 创建两棵二叉树TreeNode* p = new TreeNode(1);p->left = new TreeNode(2);p->right = new TreeNode(3);TreeNode* q = new TreeNode(1);q->left = new TreeNode(2);q->right = new TreeNode(3);Solution solution;if (solution.isSameTree(p, q)) {std::cout << "same" << std::endl;} else {std::cout << "different" << std::endl;}return 0;
}

这段代码定义了一个 TreeNode 结构体表示二叉树节点,以及一个 Solution 类包含了 isSameTree 方法来比较两棵二叉树是否相同。在 main 函数中创建了两棵二叉树,并调用 isSameTree 方法进行比较。

时间复杂度:O(min(N, M)),其中 N 和 M 分别是两棵树的节点数量。这是因为在比较过程中,我们需要递归地遍历每个节点,并且在最坏情况下,我们需要比较两棵树的所有节点。

空间复杂度:O(min(N, M)),递归调用的深度取决于两棵树中较小的节点数量。在最坏情况下,如果两棵树完全不同,递归调用的深度将达到较小的节点数量。

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

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

相关文章

市场复盘总结 20240314

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 一支股票 10%的时候可以操作&#xff0c; 90%的时间适合空仓等待 二进三&#xff1a; 进级率中 25% 最常用的…

【CSP试题回顾】201703-2-学生排队

CSP-201703-2-学生排队 解题思路 初始化队列&#xff1a;通过输入获得学生的数量 n&#xff0c;然后创建一个队列 queue&#xff0c;初始时这个队列中的学生按照学号从小到大的顺序排列。这是通过循环赋值实现的&#xff0c;其中每个学生的学号是其在列表中的位置加1。 处理调…

男人圣经 7

男人圣经 7 高逼格长期目标的行动飞轮1. 品牌价值和声誉2. 人脉网络和关系3. 企业文化和价值观4. 专有技术和知识产权5. 管理经验和专业知识 为什么只追求高经济、高科技&#xff1f;为什么说道德仁义是表面&#xff0c;而利益才是一切背后的真相&#xff1f; 高逼格长期目标的…

SinoDB数据库资源分析

SinoDB数据库资源主要从数据库虚处理器繁忙状况、数据库虚拟内存段、锁资源使用情况、数据空间使用率、网络连接情况等5个方面来进行分析。分别如下&#xff1a; 一、数据库虚处理器 检查项目 数据库虚处理器繁忙状况 检查命令 onstat -g rea onstat -g glo 说明 1、使用ons…

中科数安|公司办公终端、电脑文件数据 \ 资料防泄密系统

#中科数安# 中科数安是一家专注于信息安全技术与产品研发的高新技术企业&#xff0c;其提供的公司办公终端、电脑文件数据及资料防泄密系统&#xff08;也称为终端数据防泄漏系统或简称DLP系统&#xff09;主要服务于企业对内部敏感信息的安全管理需求。 www.weaem.com 该系统…

美易官方:阿迪达斯30年来首次亏损,红海危机令其雪上加霜

近期&#xff0c;关于电动汽车制造商菲斯克&#xff08;Fisker&#xff09;申请破产的传闻甚嚣尘上。然而&#xff0c;菲斯克公司迅速回应称&#xff0c;公司正在专注于筹集更多资本&#xff0c;并与一家大型汽车制造商洽谈构建战略伙伴关系&#xff0c;以应对当前的市场挑战。…

java通过Excel批量上传下载数据

一、首先在前端写一个上传组件。 <template><!-- 文件上传 --><el-upload class"upload-demo" drag action"" :on-change"onChange" :auto-upload"false"><el-icon class"el-icon--upload"><up…

iOS 17.0 YYText UIGraphicsBeginImageContextWithOptions 崩溃处理

在iOS17上&#xff0c;YYText会报以下错误&#xff1a; UIGraphicsBeginImageContext() failed to allocate CGBitampContext: size{0, 0}, scale3.000000, bitmapInfo0x2002. Use UIGraphicsImageRenderer to avoid this assert. 解决方法如下&#xff1a; 在YYTextAsyncLayer…

https部署的几个坑

域名解析的坑 阿里云的 云解析DNS&#xff0c;请求解析来源&#xff0c;要使用 指域名访问者所在的地区和使用的运营商网络。这里一定要有默认设置&#xff0c;不然设置联通 电信等选项&#xff0c;导致很多地方域名解析不了 SSL 的坑 阿里云的免费数字证书&#xff0c;有些…

Jsch实践(二):JSch的HostKeyRepository接口如何使用

Jsch实践(二)&#xff1a;JSch的HostKeyRepository接口如何使用 JSch 的 HostKeyRepository 接口用于存储和验证远程服务器的 SSH 主机密钥。当连接到一个新的远程服务器时&#xff0c;JSch 会请求服务器的主机密钥&#xff0c;并期望用户确认是否接受这个密钥。在生产环境中&…

解决C#连接MySQL数据库报错: SslMode=None;

2024/3/12 13:30:30_Program:中文提示 : 连接数据库过程中发生错误&#xff0c;检查服务器是否正常连接字符串是否正确&#xff0c;错误信息&#xff1a;Couldnt connect to serverDbType"MySql";ConfigId"". English Message : Connection open error . …

01、JS实现:去除数组中重复项的算法之一

数组去除重复项的算法&#xff1a; Ⅰ、删除排序数组中的重复项(注意&#xff1a;是已经排好序的)&#xff1a;1、题目描述&#xff1a;2、解题思路&#xff1a;3、实现代码&#xff1a; Ⅳ、小结&#xff1a; Ⅰ、删除排序数组中的重复项(注意&#xff1a;是已经排好序的)&…

【OceanBase诊断调优】 —— 敏捷诊断工具obdiag一键收集诊断信息实践

最近总结一些诊断OCeanBase的一些经验&#xff0c;出一个【OceanBase诊断调优】专题&#xff0c;也欢迎大家贡献自己的诊断OceanBase的方法。 1. 前言 obdiag定位为OceanBase敏捷诊断工具。整体使用上备以下的特点&#xff1a; 部署简单&#xff1a;提供rpm包和OBD上部署的模…

ConcurrentHashMap 为什么不能插入 null?

1、典型回答 简单来说&#xff0c;ConcurrentHashMap 不允许插入 null 值是JDK 源码规定的&#xff0c;如下源码所示(此源码基于JDK 1.8)&#xff1a; 从上述源码可以看出&#xff0c;在添加方法的第一句就加了判断&#xff1a;如果 key 值为 null 或者是 value 值为 null&…

齐聚“向上的力量”,维谛技术(Vertiv)2024年合作伙伴大会成功举办

3月13日&#xff0c;维谛技术&#xff08;Vertiv&#xff0c;NYSE&#xff1a;VRT&#xff09;2024年合作伙伴大会在广东佛山顺利召开&#xff0c;本次大会以“向上的力量”为主题&#xff0c;维谛技术与数百家优秀合作伙伴&#xff08;含港台&#xff09;欢聚一堂&#xff0c;…

【25届秋招备战C++】算法篇-贪心算法(Greedy)

【25届秋招备战C】算法篇-贪心算法 一、简介二、解题思路三、应用场景四、模板函数五、参考 一、简介 一种在每次决策时&#xff0c;总是采取在当前状态下的最好选择&#xff0c;从而希望导致结果是最好或最优的算法。通常用于解决一些最优化问题&#xff0c;如找零问题、霍夫…

vue/uniapp路由history模式下宝塔空间链接打开新窗口显示404解决方法

vue/uniapp路由history模式下宝塔空间链接打开新窗口显示404&#xff0c;或者域名后带路径参数刷新就报404 解决方法&#xff1a; 宝塔中站点配置修改&#xff1a;【配置文件】中添加下面代码&#xff0c;具体如图&#xff1a; location / {try_files $uri $uri/ /index.html…

【MySQL 系列】MySQL 引擎篇

存储引擎是 MySQL 的组件&#xff0c;用于处理不同表类型的 SQL 操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能&#xff0c;使用不同的存储引擎&#xff0c;还可以获得特定的功能。 文章目录 1、MySQL 引擎介绍1.1、MySQL 引擎介绍1.2、常见引擎及其区别和…

Editor.md-编辑器

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

mac安全干净卸载Anaconda3

使用which python显示当前使用的是/Users/username/anaconda3/bin/python 现在想卸载Anaconda&#xff0c;恢复使用mac系统自带的Python 删除隐藏文件目录 rm -rf ~/.anaconda修改~/.bash_profile文件&#xff0c;将anaconda相关删除 也有可能不是~/.bash_profile而是~/.zs…