如何删除链表?(C语言).

来源:百度知道 编辑:UC知道 时间:2024/04/29 17:13:09
如何删除一个链表,只留下头节点??
链表长度不确定
无法一个一个删

把头节点拆下,把剩下的结点当两个,第一个作为第一个,剩下的作为第二个,先删除第一个,在删除第二个,直到第二个为空

void Destroy_L(LinkList &L)
{
LinkList p=L->next, q;
for(; p ;)
{
q=p->next;
free(p);
p=q;
}
// free(L);//不删头节点,此行就注销了
}

设两指针p,q
p指头结点的下一结点(首元结点),q指p的下一结点
{
free(p);//释放p指向的空间
然后p=q;q=q->next;//p,q后移 } //直到q=NULL

删除一个结点会不?(将该结点空间释放)
一个一个删就行了..