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

一、题目

给你两棵二叉树的根节点 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);
    }
}
相关推荐
wangwangmoon_light7 小时前
1.1 LeetCode总结(线性表)_枚举技巧
算法·leetcode·哈希算法
mit6.8247 小时前
几何|阻碍链
算法
有一个好名字7 小时前
力扣-小行星碰撞
算法·leetcode·职场和发展
MM_MS7 小时前
Halcon图像锐化和图像增强、窗口的相关算子
大数据·图像处理·人工智能·opencv·算法·计算机视觉·视觉检测
lamentropetion7 小时前
E - Equal Tree Sums CF1656E
算法
代码游侠7 小时前
应用——智能配电箱监控系统
linux·服务器·数据库·笔记·算法·sqlite
Xの哲學8 小时前
Linux Platform驱动深度剖析: 从设计思想到实战解析
linux·服务器·网络·算法·边缘计算
逑之8 小时前
C语言笔记11:字符函数和字符串函数
c语言·笔记·算法
栈与堆8 小时前
LeetCode-1-两数之和
java·数据结构·后端·python·算法·leetcode·rust
不知名XL8 小时前
day20 回溯算法part02
算法