Participate in Codex, Test Your Skills & Win BIG

Level 4

Linked Lists

A linked list is a linear data structure where each element is a separate object.
Linked list elements are not stored at contiguous location; the elements are linked using pointers.

Each node of a list is made up of two items - the data and a reference to the next node. The last node has a reference to null. The entry point into a linked list is called the head of the list. It should be noted that head is not a separate node, but the reference to the first node. If the list is empty then the head is a null reference.

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

Important tutorials

1. Arrays Vs Linked Lists
View Tutorial
2. Linked List Implementation
View Tutorial
3. Doubly Linked List
View Tutorial
4. Doubly Linked List Implementation
View Tutorial

Linked Lists Problems

Pointer move
Problem Score Companies Time Status
K reverse linked list 200 60:03
Swap List Nodes in pairs 350 33:34
Rotate List 350 33:55
List math
Problem Score Companies Time Status
Add Two Numbers as Lists 250 43:07
List Cycle 600 39:15
List sort
Problem Score Companies Time Status
Partition List 275
Insertion Sort List 300
Sort List 350
List trick
Problem Score Companies Time Status
Reverse Link List II 450 57:24
Reorder List 600 57:07

Additional Practice

Problem Score Companies Time Status
Reverse Alternate K Nodes 300 37:17
Kth Node From Middle 200 25:36
Sort Binary Linked List 200 25:25
Even Reverse 200 32:59