Data Structure - Linked List

| 3 min read

What is a Linked List?

A linked lists stand as a building block. Picture a series of interconnected nodes, each containing data and a pointer to the next node in the sequence. This sequential arrangement is what gives linked lists their distinctive structure and functionality.

At its core, a linked list is a dynamic data structure where elements, called nodes, are not stored in contiguous memory locations like arrays but rather scattered across memory, connected by pointers. This allows for efficient insertion and deletion operations, as no shifting of elements is required.

How Does Linked Lists Work?

The linked list supports three main operations:

  • Insertion - add an element at the beginning, end or at given index in the list
  • deletion - remove an element at its index or value
  • Search - find an element given its value

Imagine you have a simple singly linked list, where each node contains some data and a pointer to the next node. To traverse the list, you start from the head node (the first node) and follow the pointers until you reach the end of the list, where the pointer is null. This traversal process gives you access to each element in the list, one by one.

Types of Linked lists

Singly Linked List

Each node points to the next node in the sqeuence. It is straightforward and efficient for insertion and deletion at the beginning but less efficient for accessing elements in the middle

head node only

5 nodes with a pointer to next node, and the last node points to null

Doubly Linked List

Each node contains two pointers; one point to the next node and another to the previous node. This bidirectional linkage allows for efficient traversal in both direcitons but requires more memory due to the extra pointers.

a node with 2 pointers to null on both sides

5 nodes with pointers to each other with head and tail node points to null

It’s important to clarify that while a linked list typically ends with a node whose next pointer is null, indicating the list’s end, having a tail node at the end is optional. If included, this tail node acts as a reference for the end of the list, similar to how the head node marks the beginning.

Resources

Linked Lists

Types of Linked List in Data Structures by Simplilearn

List by ByteByteGO

Thank you!

Thank you for your time and for reading this!