判断两棵树是否完全一致

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

相同的树


题目描述


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


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

数据样例


示例 1:

eb73de3b798f49a780dce7c4d452ec18.png


输入:p = [1,2,3], q = [1,2,3]
输出:true


示例 2:


c89c8f1ac9c44feb8f8427b0911bff19.png

输入:p = [1,2], q = [1,null,2]
输出:false


示例 3:

f4a8e948d1894c358d717cf1bc00ed26.png


输入:p = [1,2,1], q = [1,1,2]
输出:false


解题思路


要想判断两棵树是否相等——>判断两棵树的根节点的值是否相等&&两棵树根节点的左子树相等&&两棵树根节点的右子树相等——>制定结束条件,循环遍历树的结构——>得出最后结果。

本题的关键点在于制定判断两棵树的条件,我们可以想到“两棵树要相同,其对应位置的节点值必须相同,结构必须相同”。所以得到以下的代码样例。


参考代码


bool isSameTree(TreeNode* p, TreeNode* q) {
    if(p!=nullptr&&q!=nullptr&&p->val==q->val){
        return isSameTree(p->left,q->left) && isSameTree(p->right,q->right);
    }
    // 如果遍历到叶子结点,其左右结点都是空结点,则两棵树的结构和值完全相同。
    if(p==nullptr&&q==nullptr){
        return true;
    }
    return false;
}


目录
相关文章
|
10月前
|
Python
晶闸管阴阳极的判断
晶闸管阴阳极的判断
266 0
|
10月前
阿里云RPA元素出现后,有个返回结果 ,需要拿这个结果再去做判断吗?这个判断的操作 如何 处理
【2月更文挑战第8天】阿里云RPA元素出现后,有个返回结果 ,需要拿这个结果再去做判断吗?这个判断的操作 如何 处理
151 3
|
前端开发
12 # 根据 x 值来判断是成功还是失败
12 # 根据 x 值来判断是成功还是失败
56 0
|
4月前
|
数据挖掘 Python
如何判断处理后的数据是否仍然存在重复值?
通过以上任意一种方法,都可以有效地判断处理后的数据是否仍然存在重复值,从而确保数据的准确性和唯一性,为后续的数据分析和处理提供可靠的数据基础。
208 66
|
5月前
|
前端开发 JavaScript
判断数组为空的方法有哪些?
本文介绍了多种判断数组是否为空的方法,包括使用 `length` 属性、隐式类型转换、`toString()`、`join()`、`every()`、`reduce()`、`filter()`、`some()` 方法以及循环。每种方法都有其适用场景,其中使用 `length` 属性和隐式类型转换最为常见和简单。文章首发于微信公众号“前端徐徐”。
529 2
判断数组为空的方法有哪些?
|
10月前
|
C++
c++判断
c++判断
60 1
|
10月前
|
C语言
C判断
C判断
60 0
|
10月前
|
存储 C++
C++ 判断
C++ 判断
61 0
|
前端开发 数据格式
关于三个数组的判断
关于三个数组的判断
64 0
|
10月前
|
小程序 区块链
血常规常见判断参数
血常规常见判断参数
85 0