当前位置:首页 » 编程语言 » c语言链表的删除

c语言链表的删除

发布时间: 2023-08-05 23:05:21

㈠ C语言如何删除链表头节点

这种删除方法是头节点存放值的,这样可以清楚的看到是否删除掉了头节点。

用p保存头节点 p=head;

head指向下一个节点,成为新的头节点head=p->next;

释放原来的头节点 free(p);


#include<iostream>
#include<stdio.h>
#include<stdlib.h>
voidprintList(structnode*head);
structnode*delHead(structnode*head);
structnode{
intdata;
structnode*next;
};
intmain(){
inti;
structnode*tail,*head,*p;
//尾插法插入数据
p=(structnode*)malloc(sizeof(structnode));
p->data=0;
tail=head=p;
tail->next=NULL;
for(i=1;i<10;i++){
p=(structnode*)malloc(sizeof(structnode));
tail->next=p;
p->data=i;
p->next=NULL;
tail=p;
}
printList(head);
head=delHead(head);
printList(head);
system("pause");
return0;
}
//删除头结点
structnode*delHead(structnode*head){
structnode*p=head;
head=p->next;
free(p);
returnhead;
}
//打印链表
voidprintList(structnode*head){
structnode*p=head;
while(p!=NULL){
printf("%i",p->data);
p=p->next;
}
printf(" ");
}

㈡ C语言中链表怎么删除结点

有分才有动力啊哥们。

删除节点很简单,以单链表为例,牢记三点

  1. 避免断链,删除掉节点后,前一个节点的p->next一定要指向后一个节点(如果是头节点,记得要将新表头P指向到原来的第二个节点。如果是尾节点,记得要将新的尾节点p->next置为NULL,)。

  2. 避免野指针,删除掉节点后,p->next=NULL;

  3. 避免内存泄漏,删除的节点,要用free释放堆内存。

如果是双向链表,不过是多了一个对prev操作,道理是一样的。

热点内容
安卓课程表app哪个好用 发布:2025-08-24 11:50:00 浏览:733
电脑服务器在家里对人体有害吗 发布:2025-08-24 11:38:43 浏览:897
王的编程 发布:2025-08-24 11:28:51 浏览:679
mysql远程同步数据库 发布:2025-08-24 11:16:33 浏览:703
少儿编程机器人培训机构排名 发布:2025-08-24 11:14:58 浏览:261
金蝶标准版服务器看不到ip地址 发布:2025-08-24 10:57:23 浏览:411
FTP循环全称 发布:2025-08-24 10:40:22 浏览:129
安卓手机如何恢复误删的视频 发布:2025-08-24 10:40:20 浏览:201
摩斯密码22什么意思 发布:2025-08-24 10:19:55 浏览:36
java输出图片 发布:2025-08-24 10:12:13 浏览:916