Amazon Interview Question
Software Engineer / DevelopersThe recursive method is possible, but for me, it is hard to follow.
Iterative one is easy.
void reverse(node **head) {
if (!*head) return;
node *cur = *head;
node *prev = NULL;
node *next = NULL;
while (cur) {
next = cur->next;
cur->next = prev;
prev = cur;
cur = next;
}
*head = prev;
return;
}
Recursively using 1 extra variable:
}
- Anubhav Singh June 16, 2012