typedef struct _listElement { int nData; struct _listElement* pNext; } LIST; /* Reversing A Linked List Recurrsively */ void recurrsivereverse(LIST** pHead) { LIST* pCurrent = *pHead; LIST* pNext = NULL; if(pCurrent == NULL) { return; } pNext = pCurrent->pNext; recurrsivereverse(&pNext); if(pNext) { pCurrent->pNext->pNext = pCurrent; pCurrent->pNext = NULL; *pHead = pNext; } return; } /* Reversing A Linked List Iteratively */ void iterativereverse(LIST** pHead) { LIST* pCurrent = *pHead; LIST* pPrev = NULL; LIST* pNext = NULL; while(pCurrent) { pNext = pCurrent->pNext; pCurrent->pNext = pPrev; pPrev = pCurrent; pCurrent = pNext; } *pHead = pPrev; return; }
Friday, January 31, 2014
REVERSE SINGLY LINKED LIST
Labels:
Algorithm,
Linked List
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment