From 43499a50609bd956cdcc7bf62e8f9d1162510659 Mon Sep 17 00:00:00 2001 From: divyagupta9481 <56559293+divyagupta9481@users.noreply.github.com> Date: Mon, 14 Oct 2019 23:48:36 +0530 Subject: [PATCH] Create deleteNode.py --- src/chapter03linkedlists/deleteNode.py | 71 ++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/chapter03linkedlists/deleteNode.py diff --git a/src/chapter03linkedlists/deleteNode.py b/src/chapter03linkedlists/deleteNode.py new file mode 100644 index 0000000..b3964dd --- /dev/null +++ b/src/chapter03linkedlists/deleteNode.py @@ -0,0 +1,71 @@ +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 occurence 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 "\nLinked List after Deletion of 1:" +llist.printList()