Challenge - 5 Problems
Linked List Queue Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
Output after multiple enqueues in a linked list queue
What is the printed state of the queue after enqueuing 10, 20, and 30 in order?
DSA Python
class Node: def __init__(self, data): self.data = data self.next = None class Queue: def __init__(self): self.front = None self.rear = None def enqueue(self, data): new_node = Node(data) if self.rear is None: self.front = self.rear = new_node return self.rear.next = new_node self.rear = new_node def print_queue(self): current = self.front while current: print(current.data, end=' -> ') current = current.next print('null') q = Queue() q.enqueue(10) q.enqueue(20) q.enqueue(30) q.print_queue()
Attempts:
2 left
💡 Hint
Remember, enqueue adds to the rear of the queue.
✗ Incorrect
Enqueue adds elements at the rear. So the order is 10, then 20, then 30, printed front to rear.
❓ Predict Output
intermediate1:30remaining
Output after enqueuing a single element in an empty queue
What is the printed state of the queue after enqueuing only the element 5?
DSA Python
class Node: def __init__(self, data): self.data = data self.next = None class Queue: def __init__(self): self.front = None self.rear = None def enqueue(self, data): new_node = Node(data) if self.rear is None: self.front = self.rear = new_node return self.rear.next = new_node self.rear = new_node def print_queue(self): current = self.front while current: print(current.data, end=' -> ') current = current.next print('null') q = Queue() q.enqueue(5) q.print_queue()
Attempts:
2 left
💡 Hint
Check how enqueue handles the empty queue case.
✗ Incorrect
When the queue is empty, both front and rear point to the new node. So printing shows 5 -> null.
🔧 Debug
advanced2:00remaining
Identify the error in enqueue method
What error will occur when running this enqueue method code?
DSA Python
class Node: def __init__(self, data): self.data = data self.next = None class Queue: def __init__(self): self.front = None self.rear = None def enqueue(self, data): new_node = Node(data) if self.rear == None: self.front = new_node else: self.rear.next = new_node self.rear = new_node q = Queue() q.enqueue(1) q.enqueue(2) print(q.front.data, q.rear.data)
Attempts:
2 left
💡 Hint
Check how the rear pointer is updated when the queue is empty.
✗ Incorrect
The code correctly updates front and rear pointers. No error occurs. It prints '1 2'.
🧠 Conceptual
advanced1:30remaining
Why is rear pointer needed in linked list queue?
Why do we keep a rear pointer in a linked list implementation of a queue?
Attempts:
2 left
💡 Hint
Think about how adding elements at the end works without rear pointer.
✗ Incorrect
Rear pointer lets us add new nodes at the end quickly without traversing the whole list.
❓ Predict Output
expert3:00remaining
Final queue state after mixed enqueues and dequeues
Given the following operations, what is the printed queue state at the end?
DSA Python
class Node: def __init__(self, data): self.data = data self.next = None class Queue: def __init__(self): self.front = None self.rear = None def enqueue(self, data): new_node = Node(data) if self.rear is None: self.front = self.rear = new_node return self.rear.next = new_node self.rear = new_node def dequeue(self): if self.front is None: return None temp = self.front self.front = temp.next if self.front is None: self.rear = None return temp.data def print_queue(self): current = self.front while current: print(current.data, end=' -> ') current = current.next print('null') q = Queue() q.enqueue(1) q.enqueue(2) q.enqueue(3) q.dequeue() q.enqueue(4) q.dequeue() q.enqueue(5) q.print_queue()
Attempts:
2 left
💡 Hint
Trace each enqueue and dequeue step carefully.
✗ Incorrect
After dequeuing twice, 1 and 2 are removed. Then 3,4,5 remain in order.