判断两棵二叉树是否相同(力扣)

一、题目

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

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

二、思路

先判断这两棵树的的结果是否相同。

1.两棵树可能第二棵节点数少,那当第二棵走到某个节点为空的时候,第一棵不为空。此时结构不相同。

2.两棵树可能第一棵节点数少,那当第一棵走到某个节点为空的时候,第二棵不为空。此时结构不相同。

3.第一颗树的左(右)子树和第二课数左(右)子树对应不上。


在结构相同的基础上判断这两棵树的对应节点是否相同

如上图,就是对应值不一样

三、代码实现

java 复制代码
class Solution {
    public boolean isSameTree(TreeNode p, TreeNode q) {
        //判断树的结构是否相同
        if(p!=null && q == null || p == null && q != null){
             return false;
        }
    //空树
    if(p == null && q == null){
            return true;
      }
    //非空树,树结构相同,判断值是否相同
    if(p.val !=q.val){
        return false;
      }

    return isSameTree(q.left,p.left) && isSameTree(q.right,p.right);
    }
}
相关推荐
小O的算法实验室4 小时前
IEEE TASE,基于MPC的多无人机协同搜索竞争群体优化方法
算法
Tbisnic5 小时前
BGE-M3 算法详解:从模型架构到三种检索方式的数学原理
算法·自然语言处理·大模型·bert·transformer·注意力机制
Brilliantwxx5 小时前
【算法从零到千】【55-58】哈希位图+常见数学运算 接口
算法
空堂与归6 小时前
用户分群找不到规律?用K-Means聚类算法自动发现数据模式
算法·机器学习·kmeans·聚类
动词ing7 小时前
【C语言】自定义函数+指针入门
c语言·开发语言·算法
重生之后端学习7 小时前
283. 移动零[简单]✅
开发语言·数据结构·算法·leetcode·职场和发展
一只小小的芙厨8 小时前
基础数论总结
笔记·学习·算法
夜不会漫长9 小时前
C++入门(1)
开发语言·c++·算法
wen_zhufeng10 小时前
IndexTTS 2.5 技术报告
人工智能·算法·机器学习
大熊背10 小时前
树莓派相机自动白平衡详解(四)
算法·树莓派·白平衡·isppipeline