欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Remove Linked List Elements

程序员文章站 2022-04-18 19:26:56
...
Remove all elements from a linked list of integers that have value val.

Example:

Input:  1->2->6->3->4->5->6, val = 6
Output: 1->2->3->4->5

这题比较简单,有一点要记住的是,如果删除当前节点,那么当前节点就不需要next了。

/**
 * 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 NULL;

        ListNode *p = new ListNode(0), *q;
        p->next = head;
        q = p;
        while(p && p->next)
        {
            if(p->next && p->next->val == val)
            {
                p->next = p->next->next;
            }
            else
                p = p->next;
        }
        return q->next;
    }
};