📖 Scenario: Imagine you have a line of people waiting to buy tickets. Sometimes, the first person in line leaves. We want to update the line to show who is now first.
🎯 Goal: You will create a simple linked list, then remove the first person (node) from the line (list), and finally show the updated line.
📋 What You'll Learn
Create a singly linked list with exactly three nodes containing values 10, 20, and 30 in that order.
Create a variable called head that points to the first node.
Write code to delete the first node by updating head to the next node.
Print the linked list after deletion in the format: 20 -> 30 -> None.
💡 Why This Matters
🌍 Real World
Linked lists are used in real life to manage queues, playlists, or any ordered collection where items can be added or removed easily.
💼 Career
Understanding linked lists and how to manipulate them is important for software developers working with data structures, memory management, and efficient data processing.
Progress0 / 4 steps
1
Create a singly linked list with three nodes
Define a class called Node with an __init__ method that takes data and sets self.data and self.next. Then create three nodes with values 10, 20, and 30. Link them so the first node points to the second, and the second points to the third. Finally, create a variable called head that points to the first node.
DSA Python
Hint
Start by defining the Node class. Then create three nodes and link them by setting the next attribute.
2
Prepare to delete the first node
Create a variable called temp and set it equal to head. This will help us keep track of the node we want to delete.
DSA Python
Hint
Use temp = head to hold the first node before deleting it.
3
Delete the first node by updating head
Update the variable head to point to the next node after temp. This removes the first node from the list.
DSA Python
Hint
Set head = temp.next to remove the first node from the list.
4
Print the linked list after deletion
Use a while loop with a variable current starting at head. Print each node's data followed by ->. When the loop ends, print None.
DSA Python
Hint
Use a loop to print each node's data followed by '->'. End with printing 'None'.
Practice
(1/5)
1. What happens to the head pointer when you delete a node at the beginning of a singly linked list?
easy
A. It points to the last node
B. It becomes null immediately
C. It remains unchanged
D. It moves to the next node in the list
Solution
Step 1: Understand the head pointer role
The head pointer points to the first node in the list.
Step 2: Effect of deleting the first node
Deleting the first node means the head must now point to the second node, which becomes the new first node.
Final Answer:
It moves to the next node in the list -> Option D
Quick Check:
Head points to next node after deletion [OK]
Hint: Head always moves to next node when deleting at start [OK]
Common Mistakes:
Thinking head becomes null even if list has more nodes
Assuming head points to last node after deletion
Not updating head pointer at all
2. Which of the following is the correct Python syntax to delete the first node in a singly linked list with head pointer head?
easy
A. head = head.next
B. head.next = head
C. head = null
D. delete head
Solution
Step 1: Understand Python linked list node deletion
To delete the first node, we move the head pointer to the next node.
Step 2: Check syntax correctness
Assigning head = head.next correctly moves head to the next node. Other options are invalid Python or incorrect logic.
Final Answer:
head = head.next -> Option A
Quick Check:
Assign head to head.next to delete first node [OK]
Hint: Use head = head.next to delete first node [OK]
Common Mistakes:
Using 'null' instead of 'None' in Python
Trying to delete node with 'delete' keyword (not valid in Python)
Assigning head.next = head which breaks list
3. What will be the output linked list after deleting the first node from the list: 1 -> 2 -> 3 -> 4 -> null?
medium
A. 3 -> 4 -> null
B. 1 -> 3 -> 4 -> null
C. 2 -> 3 -> 4 -> null
D. 1 -> 2 -> 3 -> 4 -> null
Solution
Step 1: Identify the first node to delete
The first node has value 1.
Step 2: Delete first node and update head
After deletion, head points to node with value 2, so list becomes 2 -> 3 -> 4 -> null.
Final Answer:
2 -> 3 -> 4 -> null -> Option C
Quick Check:
First node removed, list starts at 2 [OK]
Hint: Remove first node value, start list from second node [OK]
Common Mistakes:
Removing wrong node (like second node)
Not updating head pointer
Assuming list becomes empty
4. Given the code below, what is the error when deleting the first node?
class Node:
def __init__(self, data):
self.data = data
self.next = None
head = Node(10)
head.next = Node(20)
head = head.next.next # Delete first node
medium
A. head becomes None causing loss of list
B. SyntaxError due to invalid assignment
C. No error, list updates correctly
D. RuntimeError due to NoneType access
Solution
Step 1: Trace the assignment head = head.next.next
head.next is node with data 20, head.next.next is None (end of list).
Step 2: Effect of assignment
Assigning head to None loses the entire list, effectively emptying it.
Final Answer:
head becomes None causing loss of list -> Option A
Quick Check:
head = head.next.next sets head to None [OK]
Hint: Assign head = head.next to delete first node, not head.next.next [OK]
Common Mistakes:
Assigning head to head.next.next instead of head.next
Expecting list to remain intact after wrong assignment
Ignoring None assignment effect
5. You have a singly linked list with nodes: 5 -> 10 -> 15 -> 20 -> null. Write the steps to delete the first node and then insert a new node with value 25 at the beginning. What will be the final list?
hard
A. 10 -> 15 -> 20 -> 25 -> null
B. 25 -> 10 -> 15 -> 20 -> null
C. 5 -> 10 -> 15 -> 20 -> 25 -> null
D. 25 -> 5 -> 10 -> 15 -> 20 -> null
Solution
Step 1: Delete the first node
Move head pointer from node 5 to node 10, so list becomes 10 -> 15 -> 20 -> null.
Step 2: Insert new node with value 25 at beginning
Create new node with data 25, set its next to current head (node 10), then update head to new node.
Step 3: Final list after insertion
List becomes 25 -> 10 -> 15 -> 20 -> null.
Final Answer:
25 -> 10 -> 15 -> 20 -> null -> Option B
Quick Check:
Delete first, then add new node at head [OK]
Hint: Delete head by moving to next, then add new node before head [OK]
Common Mistakes:
Not updating head after deletion
Appending new node at end instead of beginning
Forgetting to link new node to old head
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.