DEV Community

thirumaleshthiru
thirumaleshthiru

Posted on

How to Implement Singly Linked List in Python

class Node:
    def __init__(self,value):
        self.value = value
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None

    def add_front(self,value):
        new_node = Node(value)
        new_node.next = self.head
        self.head = new_node
    def add_back(self,value):
        new_node = Node(value)
        if self.head is None:
            self.head = new_node
        else:
            current = self.head
            while current.next is not None:
                current = current.next
            current.next = new_node
    def print_list(self):
        current = self.head
        while current is not None:
            print(current.value)
            current = current.next

list1 = LinkedList()

list1.add_front(1)
list1.add_front(2)
list1.add_back(3)
list1.print_list()

Enter fullscreen mode Exit fullscreen mode

1. Node Class:

  • Represents an individual element in the linked list.
  • Each node has two attributes: value to store data and next to point to the next node in the list.
  • When a node is created, its next pointer is set to None.

2. LinkedList Class:

  • Manages the linked list operations.
  • Has an attribute head which is the starting point of the linked list. Initially, head is set to None since the list is empty.

3. add_front Method:

  • Adds a new node to the front of the linked list.
  • A new Node is created with the given value.
  • The new node's next pointer is set to the current head of the list.
  • The head of the list is then updated to the new node.

4. add_back Method:

  • Adds a new node to the end of the linked list.
  • A new Node is created with the given value.
  • If the list is empty (i.e., head is None), the new node is set as the head.
  • If the list is not empty, it traverses to the end of the list, then updates the last node's next pointer to point to the new node.

5. print_list Method:

  • Prints all the values in the linked list from the head to the end.
  • Starts from the head and iterates through each node using the next pointer until it reaches the end (None), printing the value of each node.

6. Usage Example:

  • An instance of LinkedList is created.
  • add_front is called twice to add nodes with values 1 and 2 to the front of the list.
  • add_back is called to add a node with value 3 to the end of the list.
  • print_list is called to print the values of all nodes in the linked list. The output is 2, 1, 3, showing that nodes were added correctly.

Top comments (0)