203. Remove Linked List Elements

来源:互联网 发布:51单片机at指令 编辑:程序博客网 时间:2024/05/16 16:21

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

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* removeElements(ListNode* head, int val)     {        if((!head)||((head->val==NULL)&&(!NULL)))            return NULL;        if(head->val==val)        {            head=head->next;            return removeElements(head,val);        }        else        {            ListNode* y=head;            ListNode* z=y->next;            while(z)            {                if(z->val==val)                    y->next=z->next;                else                    y=z;                z=z->next;            }        }        return head;    }};


0 0