class Solution {
public:
ListNode* removeElements(ListNode* head, int val) {
ListNode *p,*q;
if(head==NULL)return head;
p = head;
while(head&&head->val==val)
{
head = head->next;
p = head;
}
q=p;
while(p!=NULL)
{
if(p->val ==val)
{
q->next = p->next;
p = p->next;
}
else{
q = p;
p = q->next;
}
}
return head;
}
};