What does 'Insert at Beginning' mean in a linked list?
It means adding a new node at the start (head) of the linked list, making it the first element.
Click to reveal answer
beginner
Why is inserting at the beginning of a linked list efficient?
Because it only requires changing the head pointer and the new node's next pointer, which takes constant time O(1).
Click to reveal answer
beginner
In JavaScript, what property of a node points to the next node in a singly linked list?
The 'next' property holds the reference to the next node in the list.
Click to reveal answer
beginner
What happens to the old head node when a new node is inserted at the beginning?
The old head becomes the second node; the new node points to it via its 'next' property.
Click to reveal answer
beginner
What is the output of the linked list after inserting 10 at the beginning of list 20 -> 30 -> null?
10 -> 20 -> 30 -> null
Click to reveal answer
What is the time complexity of inserting a node at the beginning of a singly linked list?
AO(1)
BO(n)
CO(log n)
DO(n^2)
✗ Incorrect
Inserting at the beginning only changes pointers and does not depend on list size, so it is O(1).
When inserting at the beginning, what does the new node's 'next' pointer reference?
Anull
BThe current head node
CThe last node
DItself
✗ Incorrect
The new node points to the current head to become the new first node.
If the linked list is empty, what should the new node's 'next' pointer be after insertion at beginning?
AItself
Bundefined
CThe old head
Dnull
✗ Incorrect
When the list is empty, the new node points to null as there are no other nodes.
Which pointer is updated to insert a node at the beginning?
ANext of last node
BTail pointer
CHead pointer
DMiddle pointer
✗ Incorrect
The head pointer is updated to point to the new node.
After inserting a node at the beginning, what is the new head of the list?
AThe newly inserted node
BThe old head node
CThe last node
Dnull
✗ Incorrect
The new node becomes the head of the list.
Explain step-by-step how to insert a new node at the beginning of a singly linked list.
Think about how the pointers change.
You got /3 concepts.
Describe how the linked list changes visually after inserting a node at the beginning.
Imagine adding a new first book on a shelf.
You got /3 concepts.
Practice
(1/5)
1. What does the "Insert at Beginning" operation do in a singly linked list?
easy
A. Deletes the last node of the list
B. Adds a new node at the end of the list
C. Adds a new node at the start of the list
D. Deletes the first node of the list
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 new head, pushing the old head to second position.
Final Answer:
Adds a new node at the start of the list -> Option C
Quick Check:
Insert at beginning = Add new head [OK]
Hint: Insert at beginning means new head node [OK]
Common Mistakes:
Confusing insert at beginning with insert at end
Thinking it deletes nodes
Assuming it modifies middle nodes
2. Which of the following is the correct syntax to insert a new node at the beginning of a singly linked list in JavaScript?
easy
A. newNode.next = head; head = newNode;
B. head = newNode.next; newNode = head;
C. head.next = newNode; newNode = head;
D. newNode = head.next; head = newNode;
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 A
Quick Check:
Link new node to head, then update head [OK]
Hint: Set newNode.next = head, then head = newNode [OK]
Common Mistakes:
Swapping assignments incorrectly
Not updating head pointer
Assigning head.next instead of newNode.next
3. What will be the output linked list after executing the following code?
class Node {
constructor(data) {
this.data = data;
this.next = null;
}
}
let head = new Node(10);
let newNode = new Node(20);
newNode.next = head;
head = newNode;
// Print list
let current = head;
let result = [];
while(current) {
result.push(current.data);
current = current.next;
}
console.log(result);
medium
A. [20, 10]
B. [10, 20]
C. [10]
D. [20]
Solution
Step 1: Insert newNode at beginning
newNode (20) points to head (10), then head updated to newNode.
Step 2: Traverse list from new head
Traversal order: 20 -> 10 -> null, so result array is [20, 10].
Final Answer:
[20, 10] -> Option A
Quick Check:
New node at head means list starts with 20 [OK]
Hint: New node points to old head, head updated [OK]
Common Mistakes:
Reversing order of nodes in output
Ignoring head update
Confusing data values
4. Identify the error in the following code snippet that tries to insert a new node at the beginning of a linked list:
class Node {
constructor(data) {
this.data = data;
this.next = null;
}
}
let head = new Node(5);
let newNode = new Node(15);
head = newNode;
newNode.next = head;
medium
A. The head is not updated to newNode
B. The next pointer of newNode should be null
C. The newNode is not created properly
D. The newNode.next is assigned after head is updated, causing a cycle
Solution
Step 1: Analyze assignment order
head is set to newNode first, then newNode.next is set to head (which is newNode itself).
Step 2: Detect cycle creation
This causes newNode.next to point to itself, creating a cycle and breaking the list.
Final Answer:
The newNode.next is assigned after head is updated, causing a cycle -> Option D
Quick Check:
Assign next before updating head to avoid cycle [OK]
Hint: Assign newNode.next before head update to avoid cycles [OK]
Common Mistakes:
Assigning head before newNode.next
Ignoring pointer references
Assuming newNode.next should be null always
5. Given a linked list with nodes containing values [30, 20, 10] (head is 30), you want to insert nodes with values [40, 50] at the beginning one by one. What will be the final linked list after these insertions?
hard
A. [40, 50, 30, 20, 10]
B. [50, 40, 30, 20, 10]
C. [30, 20, 10, 40, 50]
D. [10, 20, 30, 40, 50]
Solution
Step 1: Insert 40 at beginning
New head becomes 40, list is [40, 30, 20, 10].
Step 2: Insert 50 at beginning
New head becomes 50, list is [50, 40, 30, 20, 10].
Final Answer:
[50, 40, 30, 20, 10] -> Option B
Quick Check:
Each insert adds new head, order reverses insert sequence [OK]
Hint: Last inserted node becomes new head, list grows front [OK]
Common Mistakes:
Appending instead of prepending
Reversing insertion order
Not updating head after each insert
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.