Singly Linked List Insertion
Let's look at the Pythonic implementation for the insertion of a node in a linked list.
We'll cover the following...
Types of Insertion #
The three types of insertion strategies used in singly linked-lists are:
- Insertion at the head
- Insertion at the tail
- Insertion at the kth index
Insertion at Head #
This type of insertion means that we want to insert a new element as the first element of the list.
As a result, the newly added node will become the head, which in turn will point to the previous first node.
For a better understanding of the Insertion At Head method, check out the illustration below:
Implementation
The implementation of this operation is simple and straightforward. It is all about correctly manipulating the next_element
of the node being inserted.
Take a look at the implementation for insert_at_head
below:
Press + to interact
LinkedList.py
Node.py
from Node import Nodeclass LinkedList:def __init__(self):self.head_node = None# Insertion at Headdef insert_at_head(self, data):# Create a new node containing your specified valuetemp_node = Node(data)# The new node points to the same node as the headtemp_node.next_element = self.head_nodeself.head_node = temp_node # Make the head point to the new nodereturn self.head_node # return the new listdef is_empty(self):if self.head_node is None:return Trueelse:return False# Supplementary print functiondef print_list(self):if(self.is_empty()):print("List is Empty")return Falsetemp = self.head_nodewhile temp.next_element is not None:print(temp.data, end=" -> ")temp = temp.next_elementprint(temp.data, "-> None")return Truelist = LinkedList()list.print_list()print("Inserting values in list")for i in range(1, 10):list.insert_at_head(i)list.print_list()
Explanation
To start things off, let’s explain the function called print_list(self)
...