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
1 class Solution { 2 public: 3 ListNode* removeElements(ListNode* head, int val) { 4 if(head==NULL) return NULL; 5 6 7 8 ListNode * p=head; 9 ListNode * q=head->next; 10 11 while(q) 12 { 13 if(q->val==val) 14 { 15 p->next=q->next; 16 delete q; 17 q=p->next; 18 }else{ 19 p=p->next; 20 q=q->next; 21 } 22 23 } 24 25 if(head->val==val) 26 { 27 p=head; 28 head=head->next; 29 delete p; 30 } 31 return head; 32 } 33 };