【20年扬大真题】
若已知两棵二叉树B1和B2皆为空,或者皆不为空且B1的左右子树和B2的左右子树分别相似,则称二叉树B1和B2相似,试编写算法,判别给定两棵二叉树是否相似。
bool Similar(BiTree B1, BiTree B2) {
if ((!B1)&&(!B2)) {//B1和B2均为空
return true;
}
else if (((!B1) && (B2)) || (B1) && (!B2)) {//一个空,一个不空
return false;
}
else {//都不为空
//判断左右孩子
return Similar(B1->lchild, B2->lchild) && Similar(B1->rchild, B2->rchild);
}
}