0%

LeetCode-相同的树

题目要求

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

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

1
2
3
4
5
6
7
输入:       1         1
/ \ / \
2 3 2 3

[1,2,3], [1,2,3]

输出: true
1
2
3
4
5
6
7
输入:      1          1
/ \
2 2

[1,2], [1,null,2]

输出: false

原题链接:100. 相同的树

解题思路

  1. 两个二叉树全为null:true
  2. 分支一个为空,一个不为空:false
  3. 所在位置的之不同:false
  4. 递归判断其左子树和右子树
1
2
3
4
5
6
7
8
9
class Solution {
public boolean isSameTree(TreeNode p, TreeNode q) {
if(p == null && q == null){
return true;
}
if((p == null && q!= null) || (p != null && q == null) || (p.val != q.val)) return false;
return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);
}
}