示例 3:

在这里插入图片描述

输入:p = [1,2,1], q = [1,1,2]

输出:false

题目链接

点我进入leetcode

思路与代码

====================================================================

思路展现


这道题目的思路同样是使用递归来进行

1:首先进行根节点的判断,如果一颗树的根节点为空,一棵树的根节点不为空,就说明这两棵树并不相等,直接返回false即可.

2:如果两棵树的根节点都为空,两者相等,返回true

3:如果两棵树的对应的节点位置处的val值并不相等,直接返回false即可

代码示例


class Solution {

public boolean isSameTree(TreeNode p, TreeNode q) {

//假设此时两棵二叉树对应的节点一个为空,一个不为空,则返回false

if(p == null && q != null || p != null && q == null) {

return false;

}

/*

此处的代码适用于两种情况:

1:一开始两棵树的根节点为空,说明这两棵树都是空的,相等返回true.

2:当递归到两棵树对应的叶子节点的左子树和右子树的时候,说明这两棵树对应的叶子节点是相等的,但当其左右子树都为空,此时也应该返回true.

*/

if(p == null && q == null) {

return true;

}

//注意这里不要写==,因为写了就直接return true后,函数就不递归了

if(p.val != q.val) {

return false;

}

return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

更多:Java进阶核心知识集

包含:JVM,JAVA集合,网络,JAVA多线程并发,JAVA基础,Spring原理,微服务,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存等等

image

高效学习视频

DB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存等等

[外链图片转存中…(img-JbA9KswV-1711183640662)]

高效学习视频

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐