Open In App

Python Program For Deleting Last Occurrence Of An Item From Linked List

Last Updated : 22 Jun, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

Using pointers, loop through the whole list and keep track of the node prior to the node containing the last occurrence key using a special pointer. After this just store the next of next of the special pointer, into to next special pointer to remove the required node from the linked list.

Output:

Created Linked list: 1 --> 2 --> 3 --> 4 --> 5 --> 4 --> 4 --> NULL
List after deletion of 4: 1 --> 2 --> 3 --> 4 --> 5 --> 4 --> NULL

Time Complexity: O(n) where n is the number of nodes in the given linked list.
Auxiliary Space: O(1), no extra space is required, so it is a constant.

Given a linked list and a key to be deleted. Delete last occurrence of key from linked. The list may have duplicates.

Examples:  

Input:   1->2->3->5->2->10, key = 2
Output:  1->2->3->5->10

The idea is to traverse the linked list from beginning to end. While traversing, keep track of last occurrence key. After traversing the complete list, delete the last occurrence by copying data of next node and deleting the next node.  

Output: 

Created Linked List: 
1  2  3  5  2  10 
Linked List after Deletion of 1: 
1  2  3  5  10

Time Complexity: O(n) where n is the number of nodes in the given linked list.
Auxiliary Space: O(1), no extra space is required, so it is a constant.

The above solution doesn't work when the node to be deleted is the last node.
Following solution handles all cases. 

Output: 

Created Linked List: 
 1  2  3  4  5  4  4 
Linked List after Deletion of 1: 
 1  2  3  4  5  4

Time Complexity: O(n) where n is the number of nodes in the given linked list.
Auxiliary Space: O(1), no extra space is required, so it is a constant.

Please refer complete article on Delete last occurrence of an item from linked list for more details!


Next Article
Practice Tags :

Similar Reads