LeetCode-100-相同的树

题目

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

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

示例 1:

img
1
2
输入:p = [1,2,3], q = [1,2,3]
输出:true

示例 2:

img
1
2
输入:p = [1,2], q = [1,null,2]
输出:false

示例 3:

img
1
2
输入:p = [1,2,1], q = [1,1,2]
输出:false

提示:

  • 两棵树上的节点数目都在范围 [0, 100]
  • -104 <= Node.val <= 104

题解

这一题继续用DFS很好解决,比较树是否相同,我们先比较当前节点数值是否相同,然后在比较左右子树是否相同即可。使用递归很方便写出答案。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public boolean isSameTree(TreeNode p, TreeNode q) {
// 两者如果都不为空,就比较数值
if (q != null && p != null) {
if (q.val == p.val) {
// 数值相同了,比较左右子树是否相同
return isSameTree(q.left, p.left) && isSameTree(q.right, p.right);
} else {
// 数值不相同返回false即可
return false;
}
} else return q == null && p == null; // 如果有一个为空,判断两者是否都为空
}
}

LeetCode-100-相同的树
https://excelius.xyz/leetcode-100-相同的树/
作者
Ther
发布于
2024年7月24日
许可协议