[LeetCode]203. Remove Linked List Elements

Posted

tags:

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

203. 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


删除链表中指定的所有元素。

1)删除链表节点时应及时释放节点内存,以免内存泄漏。

2)如果节点值和给定值一致便删除,给*list赋值下个节点;否则取下一节点即可。

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* removeElements(struct ListNode* head, int val) 
{
    if ( head == NULL )
    {   
        return head;
    }   
    struct ListNode **list = &head;
    while ( *list )
    {   
        if ( (*list)->val == val )
        {   
            struct ListNode *delete = *list;
            *list = (*list)->next;
            free(delete);
        }   
        else
        {   
            list = &(*list)->next;
        }   
    }   
    return head;
}


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

Java [Leetcode 203]Remove Linked List Elements

leetcode?python 203. Remove Linked List Elements

203. Remove Linked List Elements - LeetCode

LeetCode OJ 203Remove Linked List Elements

LeetCode 203. Remove Linked List Elements

LeetCode 203 Remove Linked List Elements