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 };

 

posted on 2015-05-14 21:22  黄瓜小肥皂  阅读(98)  评论(0编辑  收藏  举报