Remove all elements from a linked list of integers that have value val.
Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6Return: 1 --> 2 --> 3 --> 4 --> 5
1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : val(x), next(NULL) {} 7 * }; 8 */ 9 class Solution {10 public:11 ListNode* removeElements(ListNode* head, int val) {12 13 ListNode node(-1);14 node.next=head;15 ListNode *pre=&node;16 while(head!=NULL)17 {18 if(head->val==val)19 {20 pre->next=head->next;21 delete head;22 head=pre->next;23 }24 else25 {26 pre=pre->next;27 head=head->next;28 }29 30 }31 return node.next;32 }33 };