美文网首页
链表的删除c语言

链表的删除c语言

作者: macFlyang | 来源:发表于2017-11-03 02:32 被阅读0次

struct Node*Dell(structNode*pHead,int num){

struct Node* p1;//保存当前节点地址。

struct Node*p2;//p2保存检查过的节点地址

if(pHead==NULL){

printf("是空链表--程序终止\n");

exit(-1);

}

//要删的节点;

p1=pHead;

while(p1->data!=num &&p1->pNext!=NULL) {

p2=p1;

p1=p1->pNext;

}

if(p1->data==num){

//找到了要删除的节点;

if(p1==pHead){//如果要删除的节点是第一个节点

pHead=p1->pNext;//此时头指针指向了第一个节点的后一个节点,也就是第二个节点,这样第一个节点就不在链表中啦

}else{

p2->pNext= p1->pNext;  //此句最为重要了--删除以后节点的指向发生了改变2->next=1->next;

//p1->pNext=p2->pNext;这样

}

free(p1);p1=NULL;

printf("删除%d 成功\n",num);

len-=1;

}else{

printf("\n %d 没有找到要删除的数\n",num);

}

return pHead;

}

intmain(intargc,constchar* argv[]) {

structNode*pHead;

pHead=Del(pHead, 12);//删除链表

pRintf(pHead);//打印链表

return0;

}

相关文章

  • 链表的删除c语言

    struct Node*Dell(structNode*pHead,int num){ struct Node* ...

  • c语言插入删除链表

    1.题目描述 输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。...

  • 链式存储结构的线性表

    单链表结构可用如下C语言代码描述 建立链表操作 读取操作 插入节点操作 删除一个节点操作 遍历操作 链式存储结构线...

  • Algorithm LeetCode 237 + LeetCod

    Algorithm 第五周 LeetCode 237. 删除链表中的节点 题目链接 解题语言 : C 请编写一个函...

  • 单链表的基本操作

    按C语言代码编写 节点 链表的创建 输出 查找 修改 删除 排序 测试代码 C++代码 第一次写博客,有什么不好的...

  • Java实现简单的链表-面向初学者

    很久之前用C语言实现过链表,现在已经太久没用C语言。就先用JAVA实现一个简单链表好了,还是使用最原始的C语言实现...

  • 链表逆置C语言完整代码

    链表逆置C语言完整代码

  • DS单链表--类实现

    题目描述 用C++语言和类实现单链表,含头结点 属性包括:data数据域、next指针域 操作包括:插入、删除、查...

  • Redis 源码--链表。

    因为C语言是一个比较底层的语言,库内没有实现链表,于是Redis自己实现了链表。Redis的链表是一个双向链表。 ...

  • 链表(C语言)

    LinkList.h LinkList.c

网友评论

      本文标题:链表的删除c语言

      本文链接:https://www.haomeiwen.com/subject/ffqclttx.html