What if you could add new things to the front of your list instantly, without rewriting everything?
Why Insert at Beginning Head Insert in DSA Typescript?
Imagine you have a list of your favorite songs written on paper. Every time you discover a new favorite, you want to add it to the very start of your list so you see it first. Doing this by rewriting the entire list every time is tiring and slow.
Manually rewriting the whole list to add a new item at the start takes a lot of time and can cause mistakes like skipping songs or mixing the order. It's hard to keep the list neat and updated quickly.
Using the "Insert at Beginning" method in a linked list lets you add a new item right at the start instantly. You just create a new node and point it to the current first node, then update the head to this new node. No rewriting needed!
let list = ["Song1", "Song2", "Song3"]; // To add "NewSong" at start list = ["NewSong", ...list];
class Node { value: string; next: Node | null = null; constructor(value: string) { this.value = value; } } class LinkedList { head: Node | null = null; insertAtBeginning(value: string) { const newNode = new Node(value); newNode.next = this.head; this.head = newNode; } }
This lets you quickly add new important items to the front of your list without disturbing the rest, making updates fast and error-free.
Think of a to-do list app where the most urgent tasks appear at the top immediately when you add them, so you never miss what's important.
Manually adding at the start is slow and error-prone.
Head insert adds new nodes instantly at the front.
It keeps your list updated efficiently and cleanly.
Practice
Solution
Step 1: Understand the operation
Inserting at the beginning means adding a new node before the current first node.Step 2: Effect on the list
The new node becomes the head, pushing the old head to second position.Final Answer:
Adds a new node at the start of the list -> Option AQuick Check:
Insert at beginning = Add new head [OK]
- Confusing insert at beginning with insert at end
- Thinking it deletes nodes
- Assuming it changes the tail node
Solution
Step 1: Link new node to current head
Set newNode.next to point to current head node.Step 2: Update head to new node
Assign head to newNode so it becomes the first node.Final Answer:
newNode.next = head; head = newNode; -> Option DQuick Check:
Link new node to head, then update head [OK]
- Assigning head before linking newNode.next
- Swapping assignments order
- Using head.next instead of newNode.next
class Node {
value: number;
next: Node | null = null;
constructor(value: number) { this.value = value; }
}
let head: Node | null = new Node(10);
let newNode = new Node(5);
newNode.next = head;
head = newNode;Solution
Step 1: Initial list setup
head points to node with value 10, next is null.Step 2: Insert newNode at beginning
newNode (5) points to head (10), then head updated to newNode.Final Answer:
5 -> 10 -> null -> Option CQuick Check:
New node 5 becomes head, points to 10 [OK]
- Confusing order of nodes after insertion
- Forgetting to update head
- Assuming newNode.next is null
class Node {
value: number;
next: Node | null = null;
constructor(value: number) { this.value = value; }
}
let head: Node | null = null;
let newNode = new Node(7);
head.next = newNode;
head = newNode;Solution
Step 1: Check initial head value
head is null, so accessing head.next is invalid and causes runtime error.Step 2: Correct insertion approach
Assign newNode.next = head (which is null), then head = newNode.Final Answer:
head is null, so head.next causes an error -> Option AQuick Check:
Cannot access property on null head [OK]
- Trying to access next on null head
- Not linking newNode.next to head
- Assigning head after using head.next
Solution
Step 1: Understand initial list
List is 20 -> 30 -> 40 -> null, head points to 20.Step 2: Insert 10 at beginning
Create new node 10, set newNode.next = head (20), then head = newNode.Final Answer:
10 -> 20 -> 30 -> 40 -> null -> Option BQuick Check:
New node 10 becomes head, old list follows [OK]
- Appending new node at end instead of beginning
- Mixing node order after insertion
- Not updating head pointer
Ready to prove it?
Pass the test and this pattern moves unknown
