MAGMA Interview Question
Software Engineer / Developers/* Iterative Single linked list reverse */
typedef struct node{
int data;
struct node *next;
}mynode;
/*
Input: Header node of the Single linked list
OutPut: Header node of the Reversed Linked list
*/
mynode * Reverse( mynode * head )
{
if( head == NULL || head->next == NULL )
{
return head;
}
else
{
mynode *P, *Q, *R;
P = head;
Q = head->next;
/* Head become tail node in Reverse list */
P->next = NULL;
while( Q != NULL )
{
R = Q->next;
Q->next = P;
P = Q;
Q = R;
}
return P;
}
}
I used 3 temporary variables P,Q and R, can we reduce temporary variables ?
What is the website to this company?
- Rayden February 16, 2011