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

要点

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

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

相关推荐
hx8622713 分钟前
Java MySQL 连接
java·mysql·adb
lpfasd12315 分钟前
Kubernetes (K8s) 底层早已不再直接使用 Docker 引擎了
java·docker·kubernetes
aq553560018 分钟前
SpringBoot有几种获取Request对象的方法
java·spring boot·后端
Detachym1 小时前
InsightFlow 服务配置优化与部署实践
java·spring boot·tomcat·maven·状态模式·jar
y = xⁿ1 小时前
【LeetCodehot100】T23:合并k个升序链表
java·数据结构·链表
流水武qin1 小时前
SpringAI多模态的基本使用
java·spring boot·spring·ai
做怪小疯子1 小时前
Leetcode刷题——8.重叠区间
算法·leetcode·职场和发展
共享家95271 小时前
Java入门(多态)
java·开发语言
毕设源码-赖学姐2 小时前
【开题答辩全过程】以 基于Java的婚礼策划平台的设计与实现为例,包含答辩的问题和答案
java·开发语言
_饭团2 小时前
指针核心知识:5篇系统梳理3
c语言·数据结构·算法·leetcode·面试·学习方法·改行学it