📖 Scenario: You are managing a simple list of tasks represented as a singly linked list. Sometimes, you need to remove a task at a specific position to keep your list up to date.
🎯 Goal: Build a program that creates a singly linked list, sets a position to delete, removes the node at that position, and then prints the updated list.
📋 What You'll Learn
Create a singly linked list with nodes containing values 10, 20, 30, 40, 50 in that order
Create a variable called position and set it to 3
Write a function called deleteNodeAtPosition that deletes the node at the given position in the linked list
Print the linked list after deletion in the format: 10 -> 20 -> 40 -> 50 -> null
💡 Why This Matters
🌍 Real World
Linked lists are used in many applications like task scheduling, undo functionality, and managing playlists where items need to be added or removed dynamically.
💼 Career
Understanding linked list operations like deletion at a position is fundamental for software development roles, especially those involving data structure manipulation and algorithm design.
Progress0 / 4 steps
1
Create the linked list
Create a singly linked list with nodes containing values 10, 20, 30, 40, and 50 in that order. Use a class called Node and create a variable called head pointing to the first node.
DSA Javascript
Hint
Define a Node class with data and next. Then link nodes by setting next pointers.
2
Set the position to delete
Create a variable called position and set it to 3 to specify the node position to delete.
DSA Javascript
Hint
Just create a variable position and assign it the value 3.
3
Write the delete function
Write a function called deleteNodeAtPosition that takes head and position as parameters and deletes the node at that position. The function should return the new head of the linked list.
DSA Javascript
Hint
Check if position is 1 to remove the head. Otherwise, move to the node before the position and change its next pointer to skip the node to delete.
4
Print the updated list
Call deleteNodeAtPosition with head and position, then print the linked list nodes separated by -> and ending with null.
DSA Javascript
Hint
Call the delete function and then loop through the list to build a string showing each node's data followed by ->. End with null.
Practice
(1/5)
1. What happens when you delete a node at position 0 in a singly linked list?
easy
A. The head pointer moves to the next node, effectively removing the first node.
B. The last node is removed from the list.
C. The list becomes empty regardless of its size.
D. The node at position 1 is deleted instead.
Solution
Step 1: Understand position 0 in linked list
Position 0 refers to the first node, also called the head.
Step 2: Effect of deleting head node
Deleting the head means moving the head pointer to the next node, removing the first node from the list.
Final Answer:
The head pointer moves to the next node, effectively removing the first node. -> Option A
Quick Check:
Deleting position 0 removes the first node [OK]
Hint: Deleting position 0 means changing the head pointer [OK]
Common Mistakes:
Thinking the last node is deleted instead
Assuming the list becomes empty always
Deleting the wrong node position
2. Which of the following is the correct syntax to delete a node at position pos in a singly linked list in JavaScript?
easy
A. head = head[pos + 1];
B. if (pos === 0) head = head.next;
C. delete head[pos];
D. head.next = null;
Solution
Step 1: Check deletion at position 0
Deleting at position 0 means moving head to head.next.
Step 2: Validate syntax correctness
if (pos === 0) head = head.next; correctly assigns head to head.next. Other options misuse syntax or do not delete the node properly.
Final Answer:
if (pos === 0) head = head.next; -> Option B
Quick Check:
Correct syntax for deleting head node is head = head.next [OK]
Hint: To delete head, assign head = head.next [OK]
Common Mistakes:
Using delete keyword incorrectly on linked list nodes
Assigning head.next to null without updating head
Accessing nodes with array-like syntax
3. Given the linked list: 10 -> 20 -> 30 -> 40 -> null, what is the list after deleting the node at position 2?
medium
A. 10 -> 20 -> 30 -> null
B. 10 -> 30 -> 40 -> null
C. 20 -> 30 -> 40 -> null
D. 10 -> 20 -> 40 -> null
Solution
Step 1: Identify node at position 2
Positions start at 0, so position 2 is the third node with value 30.
Step 2: Delete node at position 2
Remove node 30 by linking node 20's next to node 40.
Final Answer:
10 -> 20 -> 40 -> null -> Option D
Quick Check:
Deleted node 30 at position 2 [OK]
Hint: Count from 0, remove node at that index [OK]
Common Mistakes:
Deleting wrong node by miscounting positions
Not updating the previous node's next pointer
Confusing node values with positions
4. What is the error in the following code snippet for deleting a node at position pos in a singly linked list?
function deleteNode(head, pos) {
let current = head;
for (let i = 0; i < pos - 1; i++) {
current = current.next;
}
current.next = current.next.next;
return head;
}
medium
A. It does not handle deletion when pos is 0 (head node).
B. It incorrectly updates the head pointer.
C. It causes a syntax error due to missing semicolons.
D. It deletes the last node instead of the specified position.
Solution
Step 1: Analyze loop for position traversal
The loop stops at node before position to delete, which is correct for pos > 0.
Step 2: Check handling of pos = 0
When pos is 0, the loop does not run and current is head, but code does not update head pointer, so deletion fails.
Final Answer:
It does not handle deletion when pos is 0 (head node). -> Option A
Quick Check:
Missing head deletion case causes error [OK]
Hint: Always check if deleting head node separately [OK]
Common Mistakes:
Ignoring edge case when pos is 0
Assuming loop handles all positions
Not updating head pointer when needed
5. You have a singly linked list: 5 -> 15 -> 25 -> 35 -> 45 -> null. You want to delete the node at position 4. What will the list look like after deletion? Also, what happens if you try to delete at position 5?
hard
A. After deletion at position 4: 5 -> 15 -> 25 -> 35 -> null; Deleting position 5 causes a runtime error.
B. After deletion at position 4: 5 -> 15 -> 25 -> 35 -> 45 -> null; Deleting position 5 removes the last node.
C. After deletion at position 4: 5 -> 15 -> 25 -> 35 -> null; Deleting position 5 does nothing as it's out of range.
D. After deletion at position 4: 15 -> 25 -> 35 -> 45 -> null; Deleting position 5 removes the head.
Solution
Step 1: Identify node at position 4
Positions start at 0, so position 4 is the fifth node with value 45.
Step 2: Delete node at position 4
Remove node 45 by linking node 35's next to null.
Step 3: Consider deletion at position 5
Position 5 is out of list range (list length is 5), so deletion does nothing safely.
Final Answer:
After deletion at position 4: 5 -> 15 -> 25 -> 35 -> null; Deleting position 5 does nothing as it's out of range. -> Option C
Quick Check:
Deleting last node removes it; out-of-range deletion ignored [OK]
Hint: Deleting out-of-range position does nothing [OK]
Common Mistakes:
Trying to delete non-existent node causing errors
Confusing positions and node values
Not updating previous node's next pointer correctly
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.