# Delete a Linked List node at a given position

0 like 0 dislike
2.2k views

edited
• Deletion in singly Linked List
• Deletion from nth position in singly linked list :
 Where can I do online courses From Word's Top Instructors? UDEMY:: Attend All Udemy Courses in Just INR 450[Coupon] Coursera:: Join For FREE

0 like 0 dislike
by Goeduhub's Expert (2.2k points)
edited

## Delete a node of linked list at given position

If node to be deleted is 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 position is not zero, we run a loop position -1 times and get the pointer to the previous node. # Node class

class Node:

# Function to initialize the node object

def __init__(selfdata=Nonenext=None):

self.data = data # Assign data

self.next = next # Initialize next as null

# Function to initialize the LinkedList object

def __init__(self):

def print(self):

# if linked list is empty

return

#taking empty string and appending values

llstr = ''

while itr:

llstr += str(itr.data)+' --> '

itr = itr.next

print(llstr)

# Function to insert a new node at the beginning

def insert_at_begining(selfdata):

# Function to get length of linkedList

def get_length(self):

count = 0

while itr:

count+=1

itr = itr.next

return count

#function to Remove an element at a given index

def remove_at(selfindex):

#validate that index, if index is not a valid,raise the exception

if index<0 or index>=self.get_length():

raise Exception("Invalid Index")

#remove the element at the beginning of the linked list if index is equal to 0

if index==0:

return

count = 0

while itr:

#find previous element of the node to be deleted

if count == index - 1:

itr.next = itr.next.next

break

itr = itr.next

count+=1

# Code execution starts here

if __name__ == '__main__':

ll.insert_at_begining("Red")

ll.insert_at_begining("Green")

ll.insert_at_begining("Black")

ll.insert_at_begining("Yellow")

ll.print()

print ("Print Linked List after deletion at given position: ")

ll.remove_at(2)

ll.print()

Output: 