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
解法:
两种情况
1.两树都不存在,true。
2.两树都存在(根节点相同),分别比较左右子树(递归)即可。
class Solution {
public:
bool isSameTree(TreeNode* p, TreeNode* q) {
if(p==NULL && q==NULL)
return true;
if(p!=NULL && q!=NULL && p->val==q->val){
return isSameTree(p->left,q->left) && isSameTree(p->right,q->right);
}
else
return false;
}
};