leetcode_【100】相同的树

1.题目描述

给定两个二叉树,编写一个函数来检验它们是否相同。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
> 示例 1:
> 输入: 1 1
> / \ / \
> 2 3 2 3
>
> [1,2,3], [1,2,3]
> 输出: true
>
> 示例 2:
>
> 输入: 1 1
> / \
> 2 2
>
> [1,2], [1,null,2]
> 输出: false
>
> 示例 3:
> 输入: 1 1
> / \ / \
> 2 1 1 2
>
> [1,2,1], [1,1,2]
> 输出:false
>

2.解题思路

最简单的策略是使用递归。检查p和q节点是否不是空,它们的值是否相等。如果所有检查都正常,则递归地为子节点执行相同操作。

3.代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
执行用时 :
    1 ms, 在所有 Java 提交中击败了86.63%的用户
内存消耗 :
    34.2 MB, 在所有 Java 提交中击败了85.19%的用户
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public boolean isSameTree(TreeNode p, TreeNode q) {
if(p == null && q==null)
return true;
if(p==null ||q == null)
return false;
if(p.val !=q.val)
return false;
return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);
}
}

4. 提交结果

相同的树

文章目录
  1. 1. 1.题目描述
  2. 2. 2.解题思路
  3. 3. 3.代码
  4. 4. 4. 提交结果
| 139.6k