LeetCode如何删除链表中指定的所有元素

这篇文章主要为大家展示了“LeetCode如何删除链表中指定的所有元素”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“LeetCode如何删除链表中指定的所有元素”这篇文章吧。

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

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如何删除链表中指定的所有元素”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!