Python Program For Deleting A Linked List Node At A Given Position
Last Updated :
15 Jun, 2022
Given a singly linked list and a position, delete a linked list node at the given position.
Example:
Input: position = 1, Linked List = 8->2->3->1->7
Output: Linked List = 8->3->1->7
Input: position = 0, Linked List = 8->2->3->1->7
Output: Linked List = 2->3->1->7
If the node to be deleted is the root, simply delete it. To delete a middle node, we must have a pointer to the node previous to the node to be deleted. So if positions are not zero, we run a loop position-1 times and get a pointer to the previous node.
Below is the implementation of the above idea.
Python
class Node:
def __init__( self , data):
self .data = data
self . next = None
class LinkedList:
def __init__( self ):
self .head = None
def push( self , new_data):
new_node = Node(new_data)
new_node. next = self .head
self .head = new_node
def deleteNode( self , position):
if self .head = = None :
return
temp = self .head
if position = = 0 :
self .head = temp. next
temp = None
return
for i in range (position - 1 ):
temp = temp. next
if temp is None :
break
if temp is None :
return
if temp. next is None :
return
next = temp. next . next
temp. next = None
temp. next = next
def printList( self ):
temp = self .head
while (temp):
print " %d " % (temp.data),
temp = temp. next
llist = LinkedList()
llist.push( 7 )
llist.push( 1 )
llist.push( 3 )
llist.push( 2 )
llist.push( 8 )
print "Created Linked List: "
llist.printList()
llist.deleteNode( 4 )
print "
Linked List after Deletion at position 4 : "
llist.printList()
|
Output:
Created Linked List:
8 2 3 1 7
Linked List after Deletion at position 4:
8 2 3 1
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 Delete a Linked List node at a given position for more details!
Share your thoughts in the comments
Please Login to comment...