Remove all elements from a linked list of integers that have value val.
Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5
Credits:
Special thanks to @mithmatt for adding this problem and creating all test cases.
Subscribe to see which companies asked this question
class Solution {
public:
ListNode *removeElements(ListNode *head, int val) {
if(head == NULL) return head;
ListNode *pre=NULL, *cur=head, *temp=NULL;
for(cur=head; cur!=NULL;) {
temp = cur->next;
if(cur->val == val) {
if(pre==NULL) {
head = head->next;
cur = head;
} else{
pre->next = cur->next;
}
} else {
pre = cur;
}
cur = temp;
}
return head;
}
}