就是判断二叉树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