Amazon Interview Question

Reverse a linked list - both iterative and recursive way.

Interview Answers

Anonymous

Dec 5, 2013

Node reverse(Node head) { Node temp; Node previous = NULL; while (head != NULL) { temp = head.next; head.next = previous; previous = head; head = temp; } return previous; }

Anonymous

Jan 9, 2014

void reverse(Node* & curr) { if(!curr) return; Node* p=curr->next; if(!p) return; reverse(p); curr->next->next=curr; curr->next=NULL; curr=p; }