Skip to content

Create deleteNode.py #13

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions src/chapter03linkedlists/deleteNode.py
Original file line number Diff line number Diff line change
@@ -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()