https://leetcode-cn.com/problems/remove-linked-list-elements/description/
删除链表中等于给定值 val 的所有节点。
示例:
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* removeElements(ListNode* head, int val) {
ListNode* Head = new ListNode(-1);
Head->next = head;
ListNode* prev = Head;
ListNode* next = Head;
while (head) {
next = head->next;
if (head->val == val) {
prev->next = next;
delete head;
head = next;
}
else {
if (head) {
prev = head;
head = head->next;
}
}
}
return Head->next;
}
};