给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
解题思路:
判断每个节点值是否相同。然后判断结点左树是否相同;结点右树是否相同。递归遍历两棵树。
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
bool isSameTree(struct TreeNode* p, struct TreeNode* q){
if(p == NULL && q != NULL)
return false;
else if(p != NULL && q == NULL)
return false;
else if(p == NULL && q == NULL)
return true;
else if(p->val != q->val)
return false;
return isSameTree(p->left,q->left) && isSameTree(p->right,q->right);
}