首页 > 代码库 > C语言实现单链表节点的删除(带头结点)
C语言实现单链表节点的删除(带头结点)
我在之前一篇博客《C语言实现单链表节点的删除(不带头结点)》中具体实现了怎样在一个不带头结点的单链表的删除一个节点,在这一篇博客中我改成了带头结点的单链表。代码演示样例上传至 https://github.com/chenyufeng1991/DeleteLinkedList_HeadNode。删除类型有两种:
(1)删除某个位置pos的节点;
(2)推断x值是否在链表中,若存在则删除该节点;
核心代码例如以下:
//删除某个位置pos的节点 Node *DeletePosNode(Node *pNode,int pos){ int i = 1; Node *pMove; Node *pMovePre; pMovePre = pNode; pMove = pNode->next; while (pMove != NULL) { if (i == pos) { pMovePre->next = pMove->next; free(pMove); pMove = NULL; printf("%s函数运行。在pos=%d位置删除节点成功\n",__FUNCTION__,pos); return pNode; } i++; pMovePre = pMovePre->next; pMove = pMove->next; } printf("%s函数运行,在pos=%d位置删除节点失败\n",__FUNCTION__,pos); return pNode; } //推断x值是否在链表中,若存在则删除该节点 Node *DeleteValueNode(Node *pNode,int x){ Node *pMovePre; Node *pMove; pMovePre = pNode; pMove = pNode->next; while (pMove != NULL) { if (pMove->element == x) { pMovePre->next = pMove->next; free(pMove); pMove = NULL; printf("%s函数运行,删除value=http://www.mamicode.com/%d节点成功/n",__FUNCTION__,x);>
C语言实现单链表节点的删除(带头结点)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。