Remove Linked List Elements

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Remove Linked List Elements相关的知识,希望对你有一定的参考价值。

1、问题描述:

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

2、解决思路:

1)定义两个新节点,头结点赋值给p,头结点的下一个节点赋值给q;

2)当q非空时循环,判断q节点的数据元素是否等于val,

                            if (相等){p->next=q->next; delete q; q=p-next;} 

                           else {p=p->next; q=q->next;}

3)判断头节点元素是否等于val,if(相等){p=head;head=head->next;delete p;} 

4) return head;

3、代码描述:

/**
 * 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)return NULL;
        ListNode *p,*q;
        p=head;
        q=p->next;
        
        while(q)
        {   
            if(q->val==val)
            {
                p->next=q->next;
                delete q;
                q=p->next;
            }
            else 
            {
                p=p->next;
                q=q->next;
            }
       }
       if(head->val==val)
       {
           p=head;
           head=head->next;
           delete p;
       }
       return head;
    } }; 

以上是关于Remove Linked List Elements的主要内容,如果未能解决你的问题,请参考以下文章

Remove Linked List Elements

LeetCode28.Linked List— Remove Linked List Elements删除链表元素

[LeetCode] 203. Remove Linked List Elements_Easy tag: Linked LIst

203. Remove Linked List Elements [easy] (Python)

LeetCode OJ 203Remove Linked List Elements

Remove Linked List Elements