Sunday, December 2, 2012

Reverse a single linked list recursively

E.g: Single linked list is in order 1 -> 2 -> 3 -> 4

Expected output : 4 -> 3 -> 2 -> 1

Any answers?


*******************************************

struct Node {
Node *Next;
Node *Prev; // Only for Double Linked Lists
int Data;
};


Node *RevSList(Node *pCur, Node *pRev)
{
if (!pCur) return pRev;
Node *pNext = pCur->Next;
pCur->Next = pRev;
pRev = pCur;
return (RevSList(pNext, pRev));
}

Any other better solutions?

No comments:

Post a Comment