判断两个树是否相等
1.如果传进来的两个指针都是NULL,那么return true,代表相同。
2.如果传进来的两个指针一个是NULL一个不是NULL;或者两个都不是NULL,但是它们的value值不相等,return false。
3.通过上面的判断可以确定:两个节点都不是NULL,并且两个节点的值相等,那么就分别递归判断两个节点的
左子树和右子树。
代码实现:
bool isSameTree(TreeNode* p, TreeNode* q)
{
if(!p && !q)
{
return true;
}
if((!p && q) || (p && !q) || (p->val != q->val))
{
return false;
}
return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
}