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.
- Multiply two numbers represented by Linked Lists
- Delete middle of linked list
- Delete a Linked List node at a given position
- Find Length of a Linked List (Iterative and Recursive)
- Construct a Maximum Sum Linked List out of two Sorted Linked Lists having some Common nodes
- Linked List | Set 3 (Deleting a node)
- Sort a linked list of 0s, 1s and 2s
- Delete a given node in Linked List under given constraints
- Detect and Remove Loop in a Linked List
- Delete nodes which have a greater value on right side
- Remove duplicates from an unsorted linked list
- Remove duplicates from a sorted linked list
- Function to check if a singly linked list is palindrome
- Detect loop in a linked list
- Reverse a linked list