相同的树——java

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

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

示例 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

解题:如何去判断两棵树相同?根节点相同,左子树相同右子树相同 如果两棵树都为空则它们肯定相同,若一棵树为空则两棵树肯定不相同;若两棵树对应节点都存在且值相同,则两棵树肯定相同。所以要使用递归的思想

java 复制代码
public boolean isSameTree(TreeNode p, TreeNode q) {
        if (p==null && q==null)
          return true;
        else if(p==null &&q!=null)
          return false;
        else if(p!=null && q==null)
          return false;
        else{
            if(p.val==q.val)
            {
                return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);
            }
            else
              return false;
        }
 }
相关推荐
算AI8 小时前
人工智能+牙科:临床应用中的几个问题
人工智能·算法
hyshhhh9 小时前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉
杉之10 小时前
选择排序笔记
java·算法·排序算法
烂蜻蜓10 小时前
C 语言中的递归:概念、应用与实例解析
c语言·数据结构·算法
OYangxf11 小时前
图论----拓扑排序
算法·图论
我要昵称干什么11 小时前
基于S函数的simulink仿真
人工智能·算法
AndrewHZ11 小时前
【图像处理基石】什么是tone mapping?
图像处理·人工智能·算法·计算机视觉·hdr
念九_ysl11 小时前
基数排序算法解析与TypeScript实现
前端·算法·typescript·排序算法
守正出琦11 小时前
日期类的实现
数据结构·c++·算法
ChoSeitaku11 小时前
NO.63十六届蓝桥杯备战|基础算法-⼆分答案|木材加工|砍树|跳石头(C++)
c++·算法·蓝桥杯