A linear linked list is a chain of nodes where each node points to the next node, and the last node points to null, marking the end of the list.
Click to reveal answer
beginner
What is a circular linked list?
A circular linked list is a chain of nodes where the last node points back to the first node, forming a circle with no null end.
Click to reveal answer
beginner
How does the last node differ in a linear vs circular linked list?
In a linear linked list, the last node points to null. In a circular linked list, the last node points back to the first node.
Click to reveal answer
intermediate
Why might a circular linked list be useful compared to a linear linked list?
Because it loops back to the start, a circular linked list is useful for applications needing continuous cycling through elements, like round-robin scheduling.
Click to reveal answer
intermediate
What is a key challenge when traversing a circular linked list?
Since there is no null to mark the end, you must track the starting node to avoid infinite loops during traversal.
Click to reveal answer
In a linear linked list, what does the last node point to?
Aitself
Bthe first node
Cnull
Drandom node
✗ Incorrect
The last node in a linear linked list points to null, indicating the end of the list.
What does the last node point to in a circular linked list?
Athe first node
Bnull
Cthe middle node
Ditself
✗ Incorrect
In a circular linked list, the last node points back to the first node, forming a loop.
Which linked list type can cause infinite loops if not handled carefully during traversal?
ANeither
BLinear linked list
CBoth
DCircular linked list
✗ Incorrect
Circular linked lists can cause infinite loops because they have no null end; you must track the start node.
Which linked list is better for applications needing repeated cycling through elements?
ALinear linked list
BCircular linked list
CBoth are equally good
DNone
✗ Incorrect
Circular linked lists naturally loop back to the start, making them ideal for repeated cycling.
What marks the end of a linear linked list?
AA node pointing to null
BA node pointing to the first node
CA node pointing to itself
DA node pointing to a random node
✗ Incorrect
The end of a linear linked list is marked by a node pointing to null.
Explain the main difference between a circular linked list and a linear linked list.
Think about where the last node points in each list.
You got /3 concepts.
Describe a situation where a circular linked list is more useful than a linear linked list.
Consider tasks that repeat over and over.
You got /3 concepts.
Practice
(1/5)
1. What is the main difference between a circular linked list and a linear linked list?
easy
A. In a circular linked list, the last node points back to the first node; in a linear linked list, the last node points to null.
B. In a linear linked list, nodes form a circle; in a circular linked list, nodes end with null.
C. Circular linked lists store data in a circle shape; linear linked lists store data in a straight line.
D. Circular linked lists use arrays internally; linear linked lists use pointers.
Solution
Step 1: Understand the pointer of the last node in linear linked list
In a linear linked list, the last node's next pointer is null, indicating the end of the list.
Step 2: Understand the pointer of the last node in circular linked list
In a circular linked list, the last node's next pointer points back to the first node, forming a circle.
Final Answer:
In a circular linked list, the last node points back to the first node; in a linear linked list, the last node points to null. -> Option A
Quick Check:
Last node pointer difference = In a circular linked list, the last node points back to the first node; in a linear linked list, the last node points to null. [OK]
Hint: Last node points null in linear, loops to head in circular [OK]
Common Mistakes:
Confusing the direction of pointers in circular vs linear
Thinking circular lists end with null
Assuming circular lists use arrays internally
2. Which of the following is the correct way to check if a linked list is circular in JavaScript?
easy
A. if (head.next === head) { /* circular list */ } else if (head.next === null) { /* linear list */ }
B. if (head === null) { /* empty list */ } else if (head.next === head) { /* circular list */ }
C. if (head.next === null) { /* linear list */ } else { /* circular list */ }
D. if (head.next === undefined) { /* circular list */ }
Solution
Step 1: Check the next pointer of head node
If head.next points to head itself, it means the list is circular with one node.
Step 2: Check if next pointer is null for linear list
If head.next is null, it means the list ends there, so it is linear.
Final Answer:
if (head.next === head) { /* circular list */ } else if (head.next === null) { /* linear list */ } -> Option A
Quick Check:
Check next pointer for circular or null for linear [OK]
Hint: Check if next points to head for circular, null for linear [OK]
Common Mistakes:
Checking undefined instead of null
Assuming head.next null means circular
Not handling empty list (head null) case
3. Consider the following JavaScript code for a circular linked list with three nodes. What will be the output when traversing and printing the list once starting from head?
class Node {
constructor(data) {
this.data = data;
this.next = null;
}
}
const head = new Node(1);
const second = new Node(2);
const third = new Node(3);
head.next = second;
second.next = third;
third.next = head; // circular link
let current = head;
let output = '';
do {
output += current.data + ' -> ';
current = current.next;
} while (current !== head);
output += 'null';
console.log(output);
medium
A. Infinite loop, no output
B. 1 -> 2 -> 3 -> 1 -> 2 -> 3 -> null
C. 1 -> 2 -> 3 -> 1 -> null
D. 1 -> 2 -> 3 -> null
Solution
Step 1: Understand the circular linked list structure
The last node points back to the head, creating a loop: 1 -> 2 -> 3 -> 1 ...
Step 2: Trace the traversal loop once
The do-while loop prints nodes starting at head and stops when it reaches head again after one full cycle, printing "1 -> 2 -> 3 -> null".
Final Answer:
1 -> 2 -> 3 -> null -> Option D
Quick Check:
Traverse once until back to head = 1 -> 2 -> 3 -> null [OK]
Hint: Traverse until current equals head again to print once [OK]
Common Mistakes:
Thinking loop prints infinitely
Appending extra nodes after stopping
Confusing do-while with while loop
4. The following code attempts to detect if a linked list is circular. What is the bug?
function isCircular(head) {
let current = head;
while (current !== null) {
if (current.next === head) {
return true;
}
current = current.next;
}
return false;
}
medium
A. It does not handle empty list (head null) case.
B. It incorrectly returns true for linear lists.
C. It may cause infinite loop if list has a cycle not pointing to head.
D. It uses strict equality instead of loose equality.
Solution
Step 1: Analyze the loop condition and pointer movement
The loop moves through nodes until current is null, checking if current.next equals head.
Step 2: Identify the problem with cycles not pointing to head
If the list has a cycle that does not point back to head, the loop never reaches null and never finds current.next === head, causing an infinite loop.
Final Answer:
It may cause infinite loop if list has a cycle not pointing to head. -> Option C
Quick Check:
Cycle detection fails if cycle not at head [OK]
Hint: Cycle may not point to head, causing infinite loop [OK]
Common Mistakes:
Assuming all cycles point to head
Not checking for null head before loop
Confusing strict and loose equality
5. You have a linked list where the last node points back to the third node (not the head). Which type of linked list is this, and what is the key difference from a linear linked list?
hard
A. It is a linear linked list; the key difference is the last node points to the third node.
B. It is a circular linked list; the key difference is the last node points to a node inside the list, not null.
C. It is a doubly linked list; the key difference is nodes have two pointers.
D. It is a circular linked list; the key difference is the last node points to the head only.
Solution
Step 1: Identify the type of linked list by last node pointer
The last node points back to the third node, creating a loop inside the list, which defines a circular linked list.
Step 2: Compare with linear linked list ending
In a linear linked list, the last node points to null, marking the end. Here, the last node points inside the list, so it is circular.
Final Answer:
It is a circular linked list; the key difference is the last node points to a node inside the list, not null. -> Option B
Quick Check:
Last node points inside list = circular list [OK]
Hint: Last node points inside list means circular, not linear [OK]
Common Mistakes:
Thinking only head pointer defines circular list
Confusing doubly linked list with circular list
Assuming last node must point to head for circular
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.