轻松C语言单表he删除
发布网友
发布时间:2023-08-11 04:32
我来回答
共2个回答
热心网友
时间:2024-09-03 04:34
这个是链表的删除。
今天的几个,链表节点定义
链表的插入
链表的删除
这些合起来,再写一个链表的打印,就是一个完整的基础链表的操作了。
删除部分的 修改如下
void delete_list(list *head,int num)
{
list *q=NULL;
list *p=NULL;
q=head;
p=q->next;
while(p!=NULL&&p->num!=num)
{
q=p;
p=q->next;
}
if(p == NULL) return;//不存在num节点的情况。
q->next=p->next;
free(p);
printf("num %d\n",num);
p=q->next;
while(p!=NULL)
{
p->num=num;
num++;
p=p->next;
}
}
热心网友
时间:2024-09-03 04:34
当然要逐个free。因为每一个节点都是申请出来的,当用完了要释放。
不能只释放头节点,那样就是内存泄漏。