LeetCode第100题 - 相同的树

题目

给定两个二叉树,编写一个函数来检验它们是否相同。

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

解答

java 复制代码
boolean isSameTree(TreeNode p, TreeNode q) {
    // p/q 二者其一为null
    if ((p == null && q != null) || (p != null && q == null)) {
        return false;
    }
    // p/q二者均为null
    if (p == q && p == null) {
        return true;
    }
    // 二者均不为null,且值不相同
    if (p.val != q.val) {
        return false;
    }

    // 检查左、右子树
    return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
}

要点

使用递归法解答,比较简单。

检查树节点的对象是否相同时,注意不要犯二。

相关推荐
Hello.Reader2 分钟前
Flink ML 线性 SVM(Linear SVC)入门输入输出列、训练参数与 Java 示例解读
java·支持向量机·flink
oioihoii3 分钟前
C++数据竞争与无锁编程
java·开发语言·c++
最贪吃的虎3 分钟前
什么是开源?小白如何快速学会开源协作流程并参与项目
java·前端·后端·开源
资生算法程序员_畅想家_剑魔4 分钟前
Java常见技术分享-16-多线程安全-并发编程的核心问题
java·开发语言
We....4 分钟前
Java SPI 机制
java·开发语言
海南java第二人14 分钟前
Java无锁并发编程:volatile+CAS原子类深度解析
java·cas·volatile
毕设源码-邱学长14 分钟前
【开题答辩全过程】以 人才培养方案调查系统为例,包含答辩的问题和答案
java·eclipse
零雲22 分钟前
Java面试:@Component和@Bean的区别是什么
java·开发语言·面试
Jerry404_NotFound1 小时前
工厂方法模式
java·开发语言·jvm·工厂方法模式
一起养小猫1 小时前
【探索实战】Kurator统一流量治理深度实践:基于Istio的跨集群服务网格
java·云原生·istio