【18年扬大真题】若已知两棵二叉树B1和B2皆为空,或者皆不为空且B1的左、右子树和B2的左、右子树分别相似,则称二叉树B1和B2相似。试编写算法,判定两棵二叉树是否相似。
int Similal(BiTree B1,BiTree B2){
if(!B1&&!B2){//均为空
return 1;
}
if((!B1&&B2)||(B1&&!B2)){//一个为空,一个不为空
return 0;
}
//剩下的只有B1和B2均不为空的情况
//判定其子树
if(Similar(B1->lchild,B2->lchild)&&Similar(B1->rchild,B2->rchild)){
return 1;
}
else{
return 0;
}
}