判断相同树或者对称树

判断两个树是否相等

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);
}

  

 

posted @ 2015-10-16 15:10  stemon  阅读(185)  评论(0编辑  收藏  举报