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);
}

要点

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

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

相关推荐
Zzzzmo_3 小时前
Maven+SpringBoot
java·spring boot
thefool1122663 小时前
无重复字符的最长子串
java
2601_962189603 小时前
【SpringCloud】Gateway
java·spring cloud·gateway
夜郎king3 小时前
基于Java的高德地图公交路线检索服务集成实践
java·智慧城市·高德地图api·县域交通智能化
Java小白笔记3 小时前
Java中fixedDealy和fixedRate的区别是什么?
java·开发语言
@兽血沸腾3 小时前
Thread线程和synchronized锁
java·开发语言
Android打工人3 小时前
c++ 、java 融为一体2,c++ 实例化Android虚拟机直接运行java,c,java 一个进程号
android·java·c++
2601_962056603 小时前
Spring Boot——日志介绍和配置
java·数据库·spring boot
Alan CGH3 小时前
一次非寻常的压测优化经历
java·网络·压力测试
2601_962066233 小时前
SpringBoot3 快速启动框架
java·spring boot·后端