What is the purpose of the 'Get Length of Linked List' operation?
It counts how many nodes are in a linked list, telling us the total number of elements stored.
Click to reveal answer
beginner
In a singly linked list, how do you find the length?
Start at the head node and move through each node one by one, counting until you reach the end (nullptr).
Click to reveal answer
intermediate
What is the time complexity of getting the length of a singly linked list by traversal?
O(n), where n is the number of nodes, because you visit each node once.
Click to reveal answer
intermediate
Why can't we get the length of a linked list in O(1) time without extra storage?
Because linked lists do not store their size, so we must count nodes by visiting each one.
Click to reveal answer
beginner
Show the basic C++ code snippet to get the length of a singly linked list.
int getLength(Node* head) {
int count = 0;
Node* current = head;
while (current != nullptr) {
count++;
current = current->next;
}
return count;
}
Click to reveal answer
What does the 'Get Length of Linked List' function return?
ANumber of nodes in the list
BValue of the last node
CPointer to the last node
DSum of all node values
✗ Incorrect
The function counts and returns how many nodes are present in the linked list.
Which pointer do you start with to count nodes in a singly linked list?
AHead pointer
BTail pointer
CRandom node pointer
DNull pointer
✗ Incorrect
Counting starts from the head pointer, which points to the first node.
What condition ends the traversal when counting linked list length?
AWhen current node value is zero
BWhen count reaches 10
CWhen current node is null
DWhen current node points to head
✗ Incorrect
Traversal ends when the current node pointer becomes null, meaning the list ended.
What is the time complexity of counting nodes in a linked list?
AO(n^2)
BO(1)
CO(log n)
DO(n)
✗ Incorrect
Counting nodes requires visiting each node once, so it is O(n).
Can you get the length of a linked list instantly without traversal?
AYes, always
BNo, unless length is stored separately
COnly if list is empty
DOnly for doubly linked lists
✗ Incorrect
Linked lists do not store length by default, so traversal is needed unless length is tracked separately.
Explain step-by-step how to find the length of a singly linked list.
Think about walking through the list one node at a time.
You got /6 concepts.
Write a simple C++ function to get the length of a linked list and explain how it works.
Focus on the loop and counting logic.
You got /5 concepts.
Practice
(1/5)
1. What does the function getLength do when given the head of a linked list?
easy
A. Deletes the linked list
B. Returns the value of the first node
C. Returns the number of nodes in the linked list
D. Returns the last node of the linked list
Solution
Step 1: Understand the function purpose
The function getLength counts nodes starting from the head until the end.
Step 2: Identify the output
It returns the total count of nodes, which is the length of the linked list.
Final Answer:
Returns the number of nodes in the linked list -> Option C
Quick Check:
Counting nodes = length [OK]
Hint: Count nodes one by one until null [OK]
Common Mistakes:
Confusing length with node value
Trying to delete nodes instead of counting
Returning the last node instead of count
2. Which of the following is the correct syntax to initialize a pointer to the head of a linked list in C++?
easy
A. Node* head = NULL;
B. Node head = NULL;
C. Node* head = 0;
D. Node head = 0;
Solution
Step 1: Understand pointer initialization
In C++, a pointer to a node is declared as Node* and can be initialized to NULL or nullptr.
Step 2: Check each option
Node* head = NULL; uses Node* head = NULL; which is correct pointer initialization syntax.
Final Answer:
Node* head = NULL; -> Option A
Quick Check:
Pointer declaration uses * and NULL [OK]
Hint: Use * for pointers and NULL for empty [OK]
Common Mistakes:
Declaring pointer without *
Assigning NULL to non-pointer variable
Using 0 instead of NULL (less clear)
3. What will be the output of the following code snippet?
struct Node {
int data;
Node* next;
};
int getLength(Node* head) {
int count = 0;
while (head != NULL) {
count++;
head = head->next;
}
return count;
}
int main() {
Node n3 = {30, NULL};
Node n2 = {20, &n3};
Node n1 = {10, &n2};
int length = getLength(&n1);
std::cout << length;
return 0;
}
medium
A. 3
B. 2
C. 1
D. 0
Solution
Step 1: Trace the linked list nodes
The list has nodes n1 -> n2 -> n3 -> NULL, so total 3 nodes.
Step 2: Count nodes in getLength
The function counts each node until NULL, so count becomes 3.
Final Answer:
3 -> Option A
Quick Check:
3 nodes counted = 3 [OK]
Hint: Count nodes by following next pointers until NULL [OK]
Common Mistakes:
Counting only first node
Off-by-one error in loop
Confusing data values with count
4. Identify the error in the following code that tries to get the length of a linked list:
int getLength(Node* head) {
int count = 0;
while (head->next != NULL) {
count++;
head = head->next;
}
return count;
}
medium
A. It causes a segmentation fault
B. It misses counting the last node
C. It counts nodes twice
D. It returns the data of the last node
Solution
Step 1: Analyze the loop condition
The loop runs while head->next != NULL, so it stops before the last node.
Step 2: Check counting logic
Since last node is not counted, the returned count is one less than actual length.
Final Answer:
It misses counting the last node -> Option B
Quick Check:
Loop condition excludes last node [OK]
Hint: Use while(head != NULL) to count all nodes [OK]
Common Mistakes:
Using head->next in loop condition
Not counting last node
Confusing node data with count
5. Given a linked list where each node contains an integer, how would you modify the getLength function to return the length only if all node values are positive? If any node has zero or negative value, return -1.
hard
A. Count nodes normally and ignore values
B. Return -1 if list is empty, else return length
C. Return length only if first node is positive
D. Traverse nodes, if value <= 0 return -1, else count nodes and return count
Solution
Step 1: Traverse each node checking value
While moving through the list, check if node's data is <= 0; if yes, return -1 immediately.
Step 2: Count nodes if all values positive
If all nodes have positive values, count them and return the count as length.
Final Answer:
Traverse nodes, if value <= 0 return -1, else count nodes and return count -> Option D
Quick Check:
Check values during count, return -1 if any non-positive [OK]
Hint: Check values while counting, stop early if non-positive [OK]
Common Mistakes:
Ignoring node values during count
Checking only first node value
Returning length even if negative values exist
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.