struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
bool isSameTree(TreeNode *p, TreeNode *q) {
if (p == NULL && q == NULL) return true;
if (p != NULL && q != NULL) {
if (p->val != q->val) {
return false;
}
if (!isSameTree(p->left, q->left)) {
return false;
}
return isSameTree(p->right, q->right);
}
return false;
}