Domanda di colloquio di Amazon

Reverse a linked list

Risposte di colloquio

Anonimo

10 mar 2011

reverse without recursion: Node*reverse(Node *root){ Node* prev=NULL,*current=root; while(current){ tmp = current->next; current->next = prev; prev = current; current = tmp; } }

2

Anonimo

8 mar 2011

Node * reverse( Node * ptr , Node * previous) { Node * temp; if(ptr->next == NULL) { ptr->next = previous; return ptr; } else { temp = reverse(ptr->next, ptr); ptr->next = previous; return temp; } }

1

Anonimo

1 mar 2011

Maintain two/three pointer , pointer to the remaning list while one is being reversed, and then loop till the end