題目:
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.
C代碼:
/*struct ListNode { int val; struct ListNode *next; }; */ struct ListNode* removeElements(struct ListNode* head, int val) { if(NULL == head) return head; struct ListNode *p=head; struct ListNode *pre=NULL; while(NULL != p){ if(p->val == val){ struct ListNode *del =p; p=p->next; if(NULL!= pre){ pre->next=p; }else{ head=p; } free(del); } else{ pre=p; p=p->next; } } return head; }