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

一、题目

给你两棵二叉树的根节点 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);
    }
}
相关推荐
汀、人工智能1 天前
[特殊字符] 第40课:二叉树最大深度
数据结构·算法·数据库架构·图论·bfs·二叉树最大深度
沉鱼.441 天前
第十二届题目
java·前端·算法
大熊背1 天前
ISP Pipeline中Lv实现方式探究之三--lv计算定点实现
数据结构·算法·自动曝光·lv·isppipeline
西岸行者1 天前
BF信号是如何多路合一的
算法
大熊背1 天前
ISP Pipeline中Lv实现方式探究之一
算法·自动白平衡·自动曝光
罗西的思考1 天前
【OpenClaw】通过 Nanobot 源码学习架构---(5)Context
人工智能·算法·机器学习
Liudef061 天前
后量子密码学(PQC)深度解析:算法原理、标准进展与软件开发行业的影响
算法·密码学·量子计算
OYpBNTQXi1 天前
SEAL全同态加密CKKS方案入门详解
算法·机器学习·同态加密
蚂蚁数据AntData1 天前
破解AI“机器味“困境:HeartBench评测实践详解
大数据·人工智能·算法·机器学习·语言模型·开源
ZC跨境爬虫1 天前
Python异步IO详解:原理、应用场景与实战指南(高并发爬虫首选)
爬虫·python·算法·自动化