欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

203. 移除链表元素(C语言)

发布时间:2025/3/21 编程问答 21 豆豆
生活随笔 收集整理的这篇文章主要介绍了 203. 移除链表元素(C语言) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。

示例 1:

输入:head = [1,2,6,3,4,5,6], val = 6
输出:[1,2,3,4,5]
示例 2:

输入:head = [], val = 1
输出:[]
示例 3:

输入:head = [7,7,7,7], val = 7
输出:[]

提示:

列表中的节点在范围 [0, 104] 内
1 <= Node.val <= 50
0 <= k <= 50

这道题分三部分:
1,链表为空直接返回为NULL
2,正常删除链表中的节点,即被删除的前一个节点指针域指向被删除节点的下一个节点;
3,若需要删除头节点,则单独考虑;
代码如下:

/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/struct ListNode* removeElements(struct ListNode* head, int val) {if(head==NULL)//如果链表为空返回空return NULL;struct ListNode* p=head;struct ListNode* q=head->next;while(q!=NULL){if(q->val==val)p->next=q->next;//删除操作elsep=q;q=q->next;}if(head->val==val)//头节点为删除节点head=head->next;return head; }

总结

以上是生活随笔为你收集整理的203. 移除链表元素(C语言)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。