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

相同的树-

题目

https://leetcode.cn/problems/same-tree/submissions/603604199

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

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
bool isSameTree(struct TreeNode* p, struct TreeNode* q);

示例 1:
在这里插入图片描述
输入:p = [1,2,3], q = [1,2,3]
输出:true

示例 2:
在这里插入图片描述
输入:p = [1,2], q = [1,null,2]
输出:false

示例 3:
在这里插入图片描述
输入:p = [1,2,1], q = [1,1,2]
输出:false

代码

bool isSameTree(struct TreeNode* p, struct TreeNode* q) {
    //都走到空
    if (p == NULL && q == NULL)
        return true;
    //其中一个为空
    if (p == NULL || q == NULL)
        return false;
    //都不为空
    //不写p->val==q->val,没有意义,当不同时就可以终止,相同就继续
    if (p->val != q->val)
        return false;
    //p、q的值相等,比较左右子树
    if (!isSameTree(p->left, q->left))
        return false;
    if (!isSameTree(p->right, q->right))
        return false;
    //都相等
    return true;
}

也可以写做:

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);
}
http://www.dtcms.com/a/38548.html

相关文章:

  • 15.5 基于 RetrievalQA 的销售话术增强系统实战:构建智能销售大脑
  • RAG项目实战:金融问答系统
  • 数据存储:使用Python存储数据到redis详解
  • js 获取节点相对于屏幕的坐标位置,获取节点的宽高,获取鼠标事件回调的鼠标位置,计算鼠标相对于某个节点下的坐标
  • 【量化科普】Leverage,杠杆
  • Java中的锁机制:synchronized vs ReentrantLock,如何选择?
  • Python 函数式编程-装饰器
  • css中overflow-x:auto无效
  • 一周学会Flask3 Python Web开发-Jinja2模版中加载静态文件
  • 快速理解Raft分布式共识算法
  • CAS (Compare and swap “比较和交换“) [ Java EE 初阶 ]
  • 【借助深度学习剖析股票数据,实现优质股涨幅预测及推送通知】
  • 用PySpark和PyTorch实现跨境支付Hive数据仓库的反洗钱数据分析
  • python基础学习day01
  • JavaScript基础(BOM对象、DOM节点、表单)
  • javascript-es6 (五)
  • redission的原理
  • JS UI库DHTMLX Suite 发布v9.1:具有行扩展器、多重排序、多用户后端等功能的网格
  • 《算法笔记》9.6小节 数据结构专题(2)并查集 问题 A: 通信系统
  • IO 和NIO有什么区别?
  • 2025.2.26总结
  • 机试刷题_面试题 08.08. 有重复字符串的排列组合【python】
  • 算法day1 dfs搜索2题
  • 智绘教:Windows平台上的高效悬浮窗画笔工具深度解析
  • mac 安装Eclipse,汉化及安装ERMaster
  • 搜索赋能:大型语言模型的知识增强与智能提升
  • mamba,mamba2环境搭建
  • # C/C++右移高位补0还是1?
  • eclipse配置Spring
  • 数据安全_笔记系列07:数据泄露防护(DLP)(监控与阻断敏感数据外泄)深度解析