题目描述:
删除链表中等于给定值 val 的所有节点。
示例:
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-linked-list-elements
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解答:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* removeElements(struct ListNode* head, int val)
{
if(NULL == head)
{
return NULL;
}
struct ListNode* temp = NULL;
struct ListNode* p = head;
while(p)
{
if(val == p->val)
{
if(NULL == temp)
{
p = p->next;
head = p;
}
else
{
temp->next = p->next;
p = p->next;
}
}
else
{
temp = p;
p = p->next;
}
}
return head;
}
运行结果: