LinkList MakeEmpty(LinkList L)//初始条件:线性表L已存在。 操作结果:将线性表L重置为空表。
{
LNode Head, P;
Head = *L;
P = Head->next;
while(!P)//把链表中除头结点外的所有结点释放
free(Head);
Head = P;
}
return (Head); //返回头结点
} 这样算对吗?我觉得不太正确,哪位给点意见
LinkList MakeEmpty(LinkList L)
LNode *Head=L,*P,*Q=NULL;
while(P)
{ Q=P->next;
free(P);
P=Q;
return (Head);
}p是节点,又不是指针,类型不搭配.而且您那个程序是把前面的节点都删除,只留下最后一个节点。
加上head->next=NULL;应该会好点.这样应该也可以.LinkList MakeEmpty(LinkList L)
LNode *Head=L,*P;
while(P!=NULL)
{ head->next=p->next; free(P); P=head->next; }