Skip to content
Linked ListMedium

2. Insert at Beginning

Allocates a new node, points its next reference to the current head, and re-designates the new node as head in O(1) time.

Time O(1) Space O(1)
Open in 3D Studio

Live loop — open the studio to scrub, add your own array, or race it in Battle Arena.

Asked in interviews at

OracleCiscoPayPal

Reference implementation (Python)

def insert_at_beginning(head, new_val):
    new_node = ListNode(new_val)
    new_node.next = head
    head = new_node
    return head

Embed this visualization

Drop a live, looping 2. Insert at Beginning canvas into a blog post or course page.

<iframe src="/embed/ll-insert-beginning" width="100%" height="380" style="border:1px solid #e6e8ec;border-radius:14px" loading="lazy" title="3D algorithm visualization by CodeWithMunnaX"></iframe>

Frequently asked

What is the time and space complexity of 2. Insert at Beginning?

2. Insert at Beginning runs in O(1) time and O(1) auxiliary space.

Is the 2. Insert at Beginning visualizer free?

The core 3D visualizer, Web Audio chimes and step intuition are free. A one-time ₹49 Pro Pass unlocks advanced algorithms, large custom arrays, Battle Arena and reel export.

Which companies ask 2. Insert at Beginning in interviews?

2. Insert at Beginning shows up in interviews at Oracle, Cisco, PayPal.

How does the 3D visualization of 2. Insert at Beginning work?

Each array value becomes a 3D pillar whose height maps to its value. Comparisons glow amber, swaps flash red, and settled elements lock green while a floating pointer badge tracks the active index — synchronized line-by-line with the Python code.

More Linked List