GATE CS 2017 Set 1 — Question 8
Go beyond PYQs with Success TrackerAI-powered personalised practice and doubt support. Unlimited practice on eligible plans; AI usage limits apply.MCQ+1 / -0.33EasySingly Linked ListsLinked ListsProgramming & Data Structures
Programming & Data Structures → Linked Lists → Singly Linked Lists
Last updated
Question
Consider the C code fragment given below.Assuming that m and n point to valid NULL-terminated linked lists, invocation of join will
typedef struct node {
int data;
node* next;
} node;
void join(node* m, node* n) {
node* p = n;
while (p->next != NULL) {
p = p->next;
}
p->next = m;
}
Correct answer
(B) either cause a null pointer dereference or append list m to the end of list n.
Solution
The function
The code works as intended.
join attempts to append list m to the end of list n.1.
node* p = n; initializes p to the head of list n.2.The loop
while (p->next != NULL) is intended to traverse to the last node of n.3.
Scenario 1: p->next = m; links the last node of n to the head of m.n is not NULL (non-empty list)The code works as intended.
p traverses to the last node, and m is appended. Result: m appended to n.Scenario 2: n is NULL (empty list)p becomes NULL. The condition p->next in the while loop attempts to dereference a NULL pointer, causing a crash (segmentation fault).Since n being NULL is a valid state for a "valid NULL-terminated linked list" (an empty list), the code is not safe for all inputs.Therefore, it will either cause a null pointer dereference (if n is NULL) or append list m to n (if n is not NULL).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 Linked Lists
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]