Problem
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.
Example1
Example2
Example3
Solution
/**
* Definition for binary tree
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
bool isSameTree(TreeNode *p, TreeNode *q) {
if(p == 0 && q == 0)
return true;
else if(p == 0 || q == 0)
return false;
else if(p->val != q -> val)
return false;
else
return isSameTree(p -> left,q->left) &&isSameTree(p -> right,q->right);
}
};