JSMS28-判断二叉树b是否为二叉树a的子树-剑指offer18*

就是判断二叉树b是否为a的子树

分析:这道题有点点难度,但也不是很难,主要就是对二叉树的遍历熟练掌握之后就可以下手。这道题代码没有调通,过段时间重新调通

//核心代码

bool DoTree(tree *t1,tree *t2)
{
	if(t1==NULL&&t2==NULL)
	{
		return true;
	}
	if(t1==NULL)
	{
		return false;
	}
	if(t1->data!=t2->data)
	{
		return false;
	}
	return DoTree(t1->left,t2->left)&&DoTree(t1->right,t2->right);
} 

bool SubTree(tree *t1,tree *t2)
{
	bool ret=false;
	if(t1!=NULL&&t2!=NULL)       
	{
		if(t1->data==t2->data)     //当t1->value==t2->value时候,进入DoTree函数
		{
			ret=DoTree(t1,t2);
		}
		if(!ret)                  //当ret不为false的时候对左子树进行遍历判断
		{
			ret=SubTree(t1->left,t2->left);    
		}
		if(!ret)                 //当ret不为false的时候对右子树进行遍历判断
		{
			ret=SubTree(t1->right,t2->right);
		}
	}
	return ret;
}

复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享