int D1(BinTree *t)
{
if(t ==NULL) return 0;
if(t->leftChild!=NULL &&t->rightChild == NULL || t->leftChild == NULL && t->rightChild !=NULL) return 1;
return D1(t->leftChild)+ D1(t->rightChild);
}
第一空:return 1;
第二空:return D1(t->leftChild)+ D1(t->rightChild);
正确的算法在下面:不过看题目的要求好像要那么填空
int D1(BinTree *t)
{
if(t ==NULL) return 0;
if(t->leftChild!=NULL &&t->rightChild == NULL)
{
return D1(t->leftChild) + 1;
}
if(t->leftChild == NULL && t->rightChild !=NULL){
{
return D1(t->rightChild) + 1;
}
return D1(t->leftChild) + D1(t->rightChild);
}
合并到一起估计只有这样了
return D1(t->leftChild != NULL ? t->leftChild : t->rightChild) + 1;