Hint: New node points to head, then head updates to new node [OK]
Common Mistakes:
Assigning head before linking new_node.next
Confusing order of assignments
Using undefined variables
3. What will be the linked list after executing the following code?
class Node:
def __init__(self, data):
self.data = data
self.next = None
def push(head, data):
new_node = Node(data)
new_node.next = head
head = new_node
return head
head = None
head = push(head, 10)
head = push(head, 20)
head = push(head, 30)
medium
A. 30 -> 20 -> 10 -> null
B. 10 -> 20 -> 30 -> null
C. 30 -> 10 -> 20 -> null
D. 20 -> 30 -> 10 -> null
Solution
Step 1: Push 10 to empty list
List becomes 10 -> null.
Step 2: Push 20 to front
New head is 20, pointing to 10: 20 -> 10 -> null.
Step 3: Push 30 to front
New head is 30, pointing to 20: 30 -> 20 -> 10 -> null.
Final Answer:
30 -> 20 -> 10 -> null -> Option A
Quick Check:
Push adds at front, last pushed is first [OK]
Hint: Last pushed node is always the head [OK]
Common Mistakes:
Assuming push adds at end
Not updating head after push
Mixing order of nodes
4. Find the error in this push function for a linked list:
def push(head, data):
new_node = Node(data)
head = new_node
new_node.next = head
return head
medium
A. new_node is not created properly
B. new_node.next is set after head is updated, causing a loop
C. head is not returned
D. Function does not accept head as parameter
Solution
Step 1: Analyze assignment order
head is set to new_node before linking new_node.next.
Step 2: Identify pointer mistake
new_node.next = head sets next to itself, creating a loop.
Final Answer:
new_node.next is set after head is updated, causing a loop -> Option B
Quick Check:
Link new_node.next before updating head [OK]
Hint: Set new_node.next before changing head [OK]
Common Mistakes:
Assigning head before linking next
Creating self-referential loops
Forgetting to return head
5. Given a linked list with nodes 5 -> 15 -> 25 -> null, what will be the list after pushing nodes with values 35 and 45 in order using the push function?
head = Node(5)
head.next = Node(15)
head.next.next = Node(25)
head = push(head, 35)
head = push(head, 45)
hard
A. 45 -> 35 -> 5 -> 15 -> 25 -> null
B. 5 -> 15 -> 25 -> 35 -> 45 -> null
C. 35 -> 45 -> 5 -> 15 -> 25 -> null
D. 45 -> 35 -> 25 -> 15 -> 5 -> null
Solution
Step 1: Original list is 5 -> 15 -> 25 -> null
Head points to 5, which points to 15, then 25.
Step 2: Push 35
New node 35 points to head (5), head updates to 35: 35 -> 5 -> 15 -> 25 -> null.
Step 3: Push 45
New node 45 points to head (35), head updates to 45: 45 -> 35 -> 5 -> 15 -> 25 -> null.
Final Answer:
45 -> 35 -> 5 -> 15 -> 25 -> null -> Option A
Quick Check:
Push adds nodes at front in order [OK]
Hint: New nodes become new head, pushing old nodes back [OK]
Common Mistakes:
Appending instead of pushing at front
Mixing node order after pushes
Not updating head after push
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.