力扣:100. 相同的树(Java)

目录

题目描述

给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。

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

输入:

p = [1,2,3], q = [1,2,3]

输出:

true

代码实现:

java 复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 * int val;
 * TreeNode left;
 * TreeNode right;
 * TreeNode() {}
 * TreeNode(int val) { this.val = val; }
 * TreeNode(int val, TreeNode left, TreeNode right) {
 * this.val = val;
 * this.left = left;
 * this.right = right;
 * }
 * }
 */
class Solution {
    public boolean isSameTree(TreeNode p, TreeNode q) {
        if (p == null && q == null) {// 树结点都为空
            return true;
        } else if (p == null || q == null) {// 树结点任一不为空
            return false;
        } else if (p.val != q.val) {// 树结点都不为空且具有不同的值
            return false;
        } else {// 树结点都不为空且具有相同的值
                // 递归比较左子树与右子树是否相同
            return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
        }
    }
}
相关推荐
linweidong3 分钟前
C++ 中避免悬挂引用的企业策略有哪些?
java·jvm·c++
用户93761147581615 分钟前
并发编程三大特性
java·后端
CoderCodingNo5 分钟前
【GESP】C++五级/四级练习(双指针/数学) luogu-P1147 连续自然数和
开发语言·c++·算法
阿在在6 分钟前
Spring 系列(二):加载 BeanDefinition 的几种方式
java·后端·spring
颜酱8 分钟前
前端算法必备:双指针从入门到很熟练(快慢指针+相向指针+滑动窗口)
前端·后端·算法
Wect12 分钟前
LeetCode 274. H 指数:两种高效解法全解析
算法·typescript
Q741_14712 分钟前
海致星图招聘 数据库内核研发实习生 一轮笔试 总结复盘(2) 作答语言:C/C++ 哈夫曼编码 LRU
c语言·数据库·c++·算法·笔试·哈夫曼编码·哈夫曼树
小当家.10514 分钟前
Maven与Gradle完整对比指南:构建工具深度解析
java·gradle·maven
Hello.Reader19 分钟前
PyFlink DataStream Operators 算子分类、函数写法、类型系统、链路优化(Chaining)与工程化踩坑
前端·python·算法
hweiyu0021 分钟前
最短路径算法:Floyd-Warshall算法
算法