Given a singly linked list, delete all occurrences of a given key in it. For example, consider the following list.
Input: 2 -> 2 -> 1 -> 8 -> 2 -> 3 -> 2 -> 7 Key to delete = 2 Output: 1 -> 8 -> 3 -> 7
This is mainly an extension of this post which deletes first occurrence of a given key.
We need to first check for all occurrences at head node and change the head node appropriately. Then we need to check for all occurrences inside a loop and delete them one by one. Following is C implementation for the same.
Created Linked List: 2 2 1 8 2 3 2 7 Linked List after Deletion of 1: 1 8 3 7
This article is contributed by Saransh. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
- Delete all occurrences of a given key in a doubly linked list
- Delete multiple occurrences of key in Linked list using double pointer
- Move all occurrences of an element to end in a linked list
- Remove all occurrences of duplicates from a sorted Linked List
- Delete middle of linked list
- Delete a linked list using recursion
- Delete all the even nodes of a Circular Linked List
- Delete every Kth node from circular linked list
- Delete a given node in Linked List under given constraints
- Delete a Linked List node at a given position
- Delete alternate nodes of a Linked List
- Write a function to delete a Linked List
- Delete all the even nodes from a Doubly Linked List
- Delete last occurrence of an item from linked list
- Delete a node in a Doubly Linked List