Linked Lists

Go to Problems

Doubly Linked List Implementation

Each node in a list consists of at least three parts:

    1. Data
    2. Pointer to the previous node
    3. pointer to the next node

  

An example of a doubly linked list node with an integer data.
// A Doubly Linked list node
struct DoublyLinkedList
{
  int val;
  struct DoublyLinkedList *next, *pre;
};
// Doubly Linked list class
class DoublyLinkedList
{
    // head of list
    Node head;
 
    // Node class
    class Node
    {
        int val;
        Node next, pre;
          
        // Constructor to create a new node
        Node(int v) {
           val = v;
        }
    }
}
# Node class
class Node:
    # Function to initialize the node object
    def __init__(self, v):
        self.val = v  # Assign value
        self.next = None  # Initialize next as null
  
# Doubly Linked List class
class DoublyLinkedList:
    # Function to initialize the Linked List
    def __init__(self): 
        self.head = None

Serious about Learning Programming ?

Learn this and a lot more with Scaler Academy's industry vetted curriculum which covers Data Structures & Algorithms in depth.

Linked Lists Problems

List sort
Problem Score Companies Time Status
Sort Binary Linked List 200 33:21
Partition List 275
49:36
Insertion Sort List 300
49:25
Sort List 350 59:53
Pointer move
Problem Score Companies Time Status
K reverse linked list 200 60:30
Even Reverse 200 45:58
Swap List Nodes in pairs 350 33:34
Rotate List 350 33:58
List trick
Problem Score Companies Time Status
Kth Node From Middle 200 30:12
Reverse Alternate K Nodes 300 54:08
Reverse Link List II 450 57:24
Reorder List 600 57:10
List math
Problem Score Companies Time Status
Add Two Numbers as Lists 250 43:07
List Cycle 600 39:15
lock
Topic Bonus
Bonus will be unlocked after solving min. 1 problem from each bucket