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

要点

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

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

相关推荐
大模型丫丫5 分钟前
Spring Boot 入门指南:从零开始构建你的第一个应用
java·spring boot·后端
拾光Ծ12 分钟前
Linux五种I/O模型与fcntl非阻塞控制
java·linux·服务器·i/o模型
半旧51816 分钟前
【Java Web02】WEB服务器内部实现技术揭秘
java·服务器·前端
gis开发之家18 分钟前
日志怎么打才专业?Spring Boot 4 日志体系与 Logback 配置(生产级实战)
java·spring boot·后端·logback
SaaS发言人25 分钟前
渠道数字化解决方案横评:谁更懂快消
java·大数据·人工智能
JL1525 分钟前
Java并发编程面试全攻略-从synchronized到AQS底层原理
java·开发语言·面试·并发编程
ZC跨境爬虫34 分钟前
LeetCode 119. 杨辉三角 II(原地更新优化详解 + Java Python 实现)
java·python·leetcode
程序员黑豆6 小时前
Java包装类:基本类型与对象的桥梁
java·前端·ai编程
mldong10 小时前
"applicant" 契约:退回发起人的闭环设计
java·架构