A doubly linked list is a list where each node has two links: one to the next node and one to the previous node, allowing traversal in both directions.
Click to reveal answer
beginner
What happens when you delete the first node in a doubly linked list?
The head pointer moves to the second node, and the new head's previous link is set to null, removing the first node from the list.
Click to reveal answer
intermediate
Why do we need to update the 'prev' pointer of the new head node when deleting from the beginning?
Because the new head node no longer has a node before it, its 'prev' pointer must be set to null to correctly represent the start of the list.
Click to reveal answer
beginner
What should you do if the doubly linked list is empty and you try to delete from the beginning?
You should check if the list is empty first and handle it gracefully, usually by doing nothing or returning null, since there is no node to delete.
Click to reveal answer
intermediate
Show the JavaScript code snippet to delete the first node from a doubly linked list.
function deleteFromBeginning() {
if (!this.head) return null;
const deletedNode = this.head;
this.head = this.head.next;
if (this.head) this.head.prev = null;
return deletedNode;
}
Click to reveal answer
What pointer must be updated when deleting the first node in a doubly linked list?
AThe 'prev' pointer of the last node
BThe 'next' pointer of the last node
CThe 'next' pointer of the deleted node
DThe 'prev' pointer of the new head node
✗ Incorrect
When deleting the first node, the new head's 'prev' pointer must be set to null to indicate it has no previous node.
If the doubly linked list has only one node, what happens after deleting from the beginning?
AThe list becomes empty (head is null)
BThe head points to itself
CThe list remains unchanged
DThe tail pointer is updated but head remains
✗ Incorrect
Deleting the only node makes the list empty, so the head pointer becomes null.
Which of these is NOT a step when deleting the first node in a doubly linked list?
ASet new head's prev to null
BUpdate tail pointer to new head
CSet deleted node's next to null
DMove head to the next node
✗ Incorrect
The tail pointer does not need to be updated unless the list becomes empty.
What should your delete function return after deleting the first node?
AThe deleted node
BThe new head node
CThe tail node
DNull always
✗ Incorrect
Returning the deleted node helps confirm what was removed or for further use.
What is the time complexity of deleting the first node in a doubly linked list?
AO(log n)
BO(n)
CO(1)
DO(n^2)
✗ Incorrect
Deleting the first node is a constant time operation because it involves only a few pointer updates.
Explain step-by-step how to delete the first node from a doubly linked list.
Think about what happens to the head and the previous pointer.
You got /4 concepts.
Write a simple JavaScript function to delete the first node from a doubly linked list and return the deleted node.
Focus on pointer updates and edge cases.
You got /5 concepts.
Practice
(1/5)
1. What happens to the head pointer when you delete the first node from a doubly linked list?
easy
A. It remains unchanged
B. It moves to the second node in the list
C. It points to the last node
D. It becomes null immediately
Solution
Step 1: Understand the head pointer role
The head pointer always points to the first node in the list.
Step 2: Effect of deleting the first node
When the first node is deleted, the head pointer must move to the next node, which becomes the new first node.
Final Answer:
It moves to the second node in the list -> Option B
Quick Check:
Head points to new first node after deletion [OK]
Hint: Head always points to the first node after deletion [OK]
Common Mistakes:
Assuming head becomes null without checking list length
Not updating head pointer after deletion
Pointing head to last node mistakenly
2. Which of the following is the correct syntax to delete the first node from a doubly linked list in JavaScript?
easy
A. head.prev = null; head = head.next;
B. head = null; head.next = null;
C. head.next = null; head = head.prev;
D. head = head.next; head.prev = null;
Solution
Step 1: Move head to next node
Assign head to head.next to remove the first node reference.
Step 2: Update new head's prev pointer
Set head.prev to null to disconnect backward link from old first node.
Final Answer:
head = head.next; head.prev = null; -> Option D
Quick Check:
Correct syntax updates head and prev pointer [OK]
Hint: Update head first, then set new head.prev to null [OK]
Common Mistakes:
Setting head.prev before moving head
Setting head.next to null incorrectly
Nullifying head before updating pointers
3. Consider the doubly linked list: 10 <-> 20 <-> 30 <-> null. After deleting the first node, what will be the new list?
medium
A. 30 <-> null
B. 10 <-> 30 <-> null
C. 20 <-> 30 <-> null
D. null
Solution
Step 1: Identify the first node
The first node is 10, which will be removed.
Step 2: Update head to second node
Head moves to 20, and 20.prev is set to null.
Final Answer:
20 <-> 30 <-> null -> Option C
Quick Check:
First node removed, list starts at 20 [OK]
Hint: After deletion, list starts from second node [OK]
Common Mistakes:
Leaving old head in list
Not updating prev pointer of new head
Removing wrong node
4. Given this code snippet to delete the first node, what is the error?
if (head !== null) {
head = head.next;
head.prev = null;
}
medium
A. head.prev assignment causes error if list has one node
B. No error, code works fine
C. head.next should be assigned to null before head update
D. head should be set to null before updating prev
Solution
Step 1: Check list with one node
If list has one node, head.next is null after head = head.next.
Step 2: Accessing head.prev causes error
head is now null, so head.prev causes runtime error (cannot read property 'prev' of null).
Final Answer:
head.prev assignment causes error if list has one node -> Option A
Quick Check:
Null head causes error on prev access [OK]
Hint: Check if head is null before accessing head.prev [OK]
Common Mistakes:
Not handling single-node list case
Accessing properties of null head
Assuming list always has multiple nodes
5. You have a doubly linked list with nodes: 5 <-> 15 <-> 25 <-> 35 <-> null. Write a function to delete the first node and return the updated list head. What will be the list after deletion?
hard
A. 15 <-> 25 <-> 35 <-> null
B. 5 <-> 25 <-> 35 <-> null
C. 25 <-> 35 <-> null
D. null
Solution
Step 1: Move head to next node
Head moves from 5 to 15, the second node.
Step 2: Set new head's prev to null
Set 15.prev = null to disconnect from old first node.
Step 3: Return updated head
Return the new head pointing to 15.
Final Answer:
15 <-> 25 <-> 35 <-> null -> Option A
Quick Check:
First node removed, list starts at 15 [OK]
Hint: Update head and set new head.prev to null [OK]
Common Mistakes:
Not updating prev pointer of new head
Returning old head instead of new head
Deleting wrong node or skipping nodes
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.