LeetCode 203. Remove Linked List Elements

来源:互联网 发布:手机翻译软件推荐 编辑:程序博客网 时间:2024/06/08 05:37

题目链接:https://leetcode.com/problems/remove-linked-list-elements/

题目描述:

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.

Subscribe to see which companies asked this question

* 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 == NULL)    return head;while (head->val == val){    head = head->next;    if (head == NULL)    return head;}/*以上两部分可以合到一起        while (head!=NULL&&head->val == val)//注意:两项顺序不能倒过来,当&&前面的为假时不会编译后面的!!!        {          head = head->next;        }        if(head==NULL)            return head;        */ListNode* p = head->next;ListNode* q = head;while (p != NULL){    if (p->val == val)    {q->next = p->next;p = p->next;    }    else    {p = p->next;q = q->next;    }}return head;    }};


注:在vs测试时,ListNode* test=new ListNode(1);调用构造函数进行初始化
                                             
0 0