2条回答 默认 最新
xt980910666666 2015-11-01 04:04关注//判断root2是不是root1开头的子结构
boolIsSubTree(BiTreeNode *root1,BiTreeNode *root2)
{
//先判断root2 if(root2==NULL) return true; if(root1==NULL) return false; if(root1->data!=root2->data) return false; returnIsSubTree(root1->LC,root2->LC) &&IsSubTree(root1->RC,root2->RC);}
//递归查找以root1为节点的树中,是否有和root2相同的值,如果有,则调用IsSubTree(root1, root2);
boolCheckIfSubTree(BiTreeNode *root1,BiTreeNode *root2)
{
if(root1==NULL) return false; bool result=false; if(root1->data==root2->data) result=IsSubTree(root1,root2); if(result==false) result=CheckIfSubTree(root1->LC,root2); if(result==false) result=CheckIfSubTree(root1->RC,root2); return result;}
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
