SLB Interview Question

recursively reverse a linked list

Interview Answer

Anonymous

Mar 5, 2013

/* Jun Zheng, Rice Univ C++, Xcode 4.5.2 Reverse a linked list recursively Real interview question of Amazon & Schlumberger */ void reverseRec(node* &phead){ if(phead==NULL ||phead->next==NULL) return; node* p1=phead->next; node* p2=p1->next; p1->next=phead; phead->next=NULL; phead=reverseRecHelper(p1,p2); } //Auxiliary method for void reverseRec(node* &phead) node* reverseRecHelper(node* &p1, node* &p2){ if(p2==NULL) return p1; node* p3=p2->next; p2->next=p1; p1=reverseRecHelper(p2, p3); return p1; }