Search⌘ K
AI Features

Deletion in a Singly Linked List

Explore how to delete nodes in a singly linked list by updating pointers in three key cases: deleting the head, deleting by value, and deleting by position. Understand the time and space complexities, avoid common mistakes, and gain practical insights for implementing safe and efficient deletion methods in Python.

By now, insertion and traversal in a singly linked list are clear. The next core operation is deletion, which removes a node from the list while keeping the remaining nodes properly connected.

Deletion in a linked list is performed by updating references between nodes. As a singly linked list only moves forward, careful handling of pointers is required to ensure that no part of the list becomes disconnected. Understanding how these references change is crucial for implementing deletion correctly and analyzing its time complexity.

Linked list deletion

Deletion means removing a node from a singly linked list while keeping the remaining nodes properly connected. As each node only points forward, deletion is done by updating the next reference of the node just before the one being removed. If the removed node is the first node, the head reference must be updated.

Deletion is usually handled in three cases:

  1. Deletion from the beginning

  2. Deletion by value

  3. Deletion by position

Deletion from the beginning

Deleting from the beginning removes the current head node. This operation is simple because the head is updated to point to the second node.

The following interactive visualizer helps to better understand the deletion from the beginning of a linked list.

Python implementation

The method below deletes the first node by moving the head reference to the next node.

Python 3.14.0
def delete_from_beginning(self):
# If the list is empty, there is nothing to delete
if self.head is None:
return
# Move head to the next node
self.head = self.head.next
Delete from the beginning of Linked List
  • Time complexity: Deletion from the beginning takes O( ...