Python Program for Deleting a Node in a Linked List Last Updated : 24 Apr, 2023 Summarize Comments Improve Suggest changes Share Like Article Like Report We have discussed Linked List Introduction and Linked List Insertion in previous posts on a singly linked list.Let us formulate the problem statement to understand the deletion process. Given a 'key', delete the first occurrence of this key in the linked list. Iterative Method:To delete a node from the linked list, we need to do the following steps. 1) Find the previous node of the node to be deleted. 2) Change the next of the previous node. 3) Free memory for the node to be deleted. Recommended: Please solve it on "PRACTICE" first, before moving on to the solution. Since every node of the linked list is dynamically allocated using malloc() in C, we need to call free() for freeing memory allocated for the node to be deleted. Python3 # A complete working Python3 program to # demonstrate deletion in singly # linked list with class # Node class class Node: # Constructor to initialize the node object def __init__(self, data): self.data = data self.next = None class LinkedList: # Function to initialize head def __init__(self): self.head = None # Function to insert a new node at the beginning def push(self, new_data): new_node = Node(new_data) new_node.next = self.head self.head = new_node # Given a reference to the head of a list and a key, # delete the first occurrence of key in linked list def deleteNode(self, key): # Store head node temp = self.head # If head node itself holds the key to be deleted if (temp is not None): if (temp.data == key): self.head = temp.next temp = None return # Search for the key to be deleted, keep track of the # previous node as we need to change 'prev.next' while(temp is not None): if temp.data == key: break prev = temp temp = temp.next # if key was not present in linked list if(temp == None): return # Unlink the node from linked list prev.next = temp.next temp = None # Utility function to print the linked LinkedList def printList(self): temp = self.head while(temp): print (" %d" %(temp.data)), temp = temp.next # Driver program llist = LinkedList() llist.push(7) llist.push(1) llist.push(3) llist.push(2) print ("Created Linked List: ") llist.printList() llist.deleteNode(1) print ("Linked List after Deletion of 1:") llist.printList() # This code is contributed by Nikhil Kumar Singh (nickzuck_007) & edited by Sayan Biswas (dankguy6146) OutputCreated Linked List: 2 3 1 7 Linked List after Deletion of 1: 2 3 7 Time Complexity: O(n), where n represents the length of the given linked list.Auxiliary Space: O(1), no extra space is required, so it is a constant. Please refer complete article on Linked List | Set 3 (Deleting a node) for more details! Comment More infoAdvertise with us Next Article Implementation of XOR Linked List in Python K kartik Follow Improve Article Tags : Python Python-DSA Practice Tags : python Similar Reads Write a function to delete a Linked List Given a linked list, the task is to delete the linked list completely.Examples:Input: head: 1 -> 2 -> 3 -> 4 -> 5 -> NULLOutput: NULLExplanation: Linked List is Deleted.Input: head: 1 -> 12 -> 1 -> 4 -> 1 -> NULLOutput: NULLExplanation: Linked List is Deleted.Table of C 9 min read Implementation of XOR Linked List in Python Prerequisite: XOR Linked List An ordinary Doubly Linked List requires space for two address fields to store the addresses of previous and next nodes. A memory-efficient version of Doubly Linked List can be created using only one space for the address field with every node. This memory efficient Doub 6 min read Delete alternate nodes of a Linked List Given a Singly Linked List, starting from the second node delete all alternate nodes of it. For example, if the given linked list is 1->2->3->4->5 then your function should convert it to 1->3->5, and if the given linked list is 1->2->3->4 then convert it to 1->3. Recomm 14 min read Doubly Linked List in Python Doubly Linked List is a type of linked list in which each node contains a data element and two links pointing to the next and previous node in the sequence. This allows for more efficient operations such as traversals, insertions, and deletions because it can be done in both directions. Table of Con 13 min read Python Library for Linked List Linked list is a simple data structure in programming, which obviously is used to store data and retrieve it accordingly. To make it easier to imagine, it is more like a dynamic array in which data elements are linked via pointers (i.e. the present record points to its next record and the next one p 5 min read Insert and delete at the beginning in Doubly Linked List in Python A doubly linked list is a collection of nodes. It is an advanced version of a singly linked list. In a doubly linked list, a node has three elements its data, a link to the next node, and a link to its previous node. In this article, we will learn how to insert a node at the beginning and delete a n 6 min read Like