题目原址
https://leetcode.com/problems/same-tree/description/
题目描述
Pick One
Given two binary trees, write a function to check if they are the same or not.
Two binary trees are considered the same if they are structurally identical and the nodes have the same value.
Example 1:
Input: 1 1
/ \ / \
2 3 2 3
[1,2,3], [1,2,3]
Output: true
Example 2:
Input: 1 1
/ \
2 2
[1,2], [1,null,2]
Output: false
Example 3:
Input: 1 1
/ \ / \
2 1 1 2
[1,2,1], [1,1,2]
Output: false
给定一个二叉树,判断此二叉树是否相同,相同的条件就是对应节点上的值相等
解题思路
使用递归的方式
- 判断如果p和q同为空,则返回true
- 如果p为空,q不为空;或者p不为空,q为空,返回false
- 如果p节点当前值等于q节点当前值,则递归调用其左孩子和右孩子是否对应相同
- 如果p节点当前值不等于q节点当前值,则返回false
AC代码
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 == null && q != null)
return false;
if(p.val == q.val) {
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
}else
return false;
}
}