GATE CS 2026 Set 1 — Question 39
Go beyond PYQs with Success TrackerAI-powered personalised practice and doubt support. Unlimited practice on eligible plans; AI usage limits apply.MCQ+2 / -0.67EasyFunctions & RecursionC ProgrammingProgramming & Data StructuresSingly Linked ListsLinked Lists
Programming & Data Structures → C Programming → Functions & Recursion
Last updated
Question
Consider the following code snippet in C language that computes the number of nodes in a non-empty singly linked list pointed to by the pointer variable Which one of the following options gives the correct replacements for the expressions E1 and E2?
head.struct node{
int elt;
struct node *next;
};
int getListSize (struct node *head)
{
if( **E1** ) return 1;
return **E2**;
}
Correct answer
(B) E1: head- next == NULL E2: 1 + getListSize(head- next)
Solution
The function
getListSize is designed to recursively count the number of nodes in a non-empty singly linked list.1.Base Case (E1): For a recursive function counting nodes in a non-empty list, the base case should identify the simplest possible scenario, which is a list with exactly one node. A node is the last node if its
next pointer is NULL. Thus, the condition E1 should be head->next == NULL. When this is true, the function returns 1, which is the correct count for a single-node list.2.Recursive Step (E2): If the current node is not the last node, the total number of nodes is 1 (for the current node) plus the number of nodes in the remainder of the list. The remainder of the list starts at
Evaluating the options:head->next. Therefore, E2 must be 1 + getListSize(head->next).- Option (A):
E1: head == NULLwould return 1 for an empty list (incorrect) andE2: 1 + getListSize(head)would cause infinite recursion. - Option (B): Correctly identifies both the base case for a single node and the proper recursive call.
- Option (C):
E1: head == NULLwould return 1 for an empty list. For a 1-node list, it would return , which is incorrect. - Option (D):
E2: 1 + getListSize(head)would cause infinite recursion as it keeps calling itself with the sameheadpointer.
Continue learning with Success Tracker
A step still unclear? Work through it with support
Use Success Tracker to ask about the reasoning, then try another GATE CS question to check your understanding.
AI-powered practice· Unlimited practice on eligible plans
- PYQs with solutions
- Attempt available previous-year questions, then compare your reasoning with the worked solution. Coverage varies by stream.
- Practice that adapts
- Choose a topic, work on weaker areas and bookmark questions to revisit. Your attempts feed your progress tracking.
- AI doubt support
- Ask follow-up questions about a step or concept while practising, instead of stopping at the final answer.
Unlimited practice is available on eligible plans. Free practice and AI usage have limits; check the current plan allowances before choosing.
This page stays readable without an account. AI responses can be wrong; check them against the solution and source material.
More questions on C Programming
2026 Set 2 Q12The set T represents various traversals over binary tree. The set S represents the order of…2026 Set 2 Q19Consider the following three ANSI-C programs, P1, P2, and P3. P1 [code] P2 [code] **P3**…2026 Set 1 Q23Let be an odd number greater than 100. Consider a binary minheap with elements stored in an…2026 Set 1 Q24Consider a hash table that is initially empty. The hash table is maintained…2026 Set 1 Q27Consider the following C statements: Which of the following options is/are correct? [figure]