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

一、题目

给你两棵二叉树的根节点 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);
    }
}
相关推荐
superman超哥19 分钟前
仓颉语言中基本数据类型的深度剖析与工程实践
c语言·开发语言·python·算法·仓颉
Learner__Q1 小时前
每天五分钟:滑动窗口-LeetCode高频题解析_day3
python·算法·leetcode
阿昭L1 小时前
leetcode链表相交
算法·leetcode·链表
闻缺陷则喜何志丹1 小时前
【计算几何】仿射变换与齐次矩阵
c++·数学·算法·矩阵·计算几何
liuyao_xianhui1 小时前
0~n-1中缺失的数字_优选算法(二分查找)
算法
hmbbcsm2 小时前
python做题小记(八)
开发语言·c++·算法
机器学习之心2 小时前
基于Stacking集成学习算法的数据回归预测(4种基学习器PLS、SVM、BP、RF,元学习器LSBoost)MATLAB代码
算法·回归·集成学习·stacking集成学习
图像生成小菜鸟2 小时前
Score Based diffusion model 数学推导
算法·机器学习·概率论
声声codeGrandMaster2 小时前
AI之模型提升
人工智能·pytorch·python·算法·ai
黄金小码农3 小时前
工具坐标系
算法