编写算法,判断一个二叉树链存储的二叉树是否为完全二叉树 求高手帮我完成

我书的答案如下:
int num(BiTreeNode *t,int i,int *max)
//求出二叉树的最大编号m
//t为二叉树的根结点指针,i为根结点编号,m为当前结点的最大编号
{
if(t==NULL)return 0;
if(*max<i)*max=i;
return(1+num(t->leftChild,2*i+1,max)+num(t->rightChild,2*i+2,max));
}
int checkTree(BiTreeNode *t)
//判断二叉树t是否为完全二叉树,是返回1,否则返回0
{
int n,maxno=0;
n=num(t,0,&maxno); //求出二叉树t的最大编号 maxno
if(n-1==maxno)
return 1;
else
return 0;
}

但无法运行
你是广东工业大学华立学院的学生吧,这是考试的一部分,请自己独立完成。