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

要点

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

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

相关推荐
咖啡Beans5 小时前
使用OpenFeign实现微服务间通信
java·spring cloud
我不是混子5 小时前
说说单例模式
java
间彧8 小时前
SimpleDateFormat既然不推荐使用,为什么java 8+中不删除此类
java
间彧8 小时前
DateTimeFormatter相比SimpleDateFormat在性能上有何差异?
java
间彧8 小时前
为什么说SimpleDateFormat是经典的线程不安全类
java
MacroZheng8 小时前
横空出世!MyBatis-Plus 同款 ES ORM 框架,用起来够优雅!
java·后端·elasticsearch
用户0332126663679 小时前
Java 查找并替换 Excel 中的数据:详细教程
java
间彧9 小时前
ThreadLocal实现原理与应用实践
java
若水不如远方9 小时前
Netty的四种零拷贝机制:深入原理与实战指南
java·netty