Interview Questions

How would you reverse a doubly-linked list?

Microsoft Interview Questions and Answers


(Continued from previous question...)

2. How would you reverse a doubly-linked list?

This problem isn't too hard. You just need to start at the head of the list, and iterate to the end. At each node, swap the values of pNext and pPrev. Finally, set pHead to the last node in the list.

Node * pCurrent = pHead, *pTemp;
while (pCurrent)
{ pTemp = pCurrent-gt;pNext;
pCurrent-gt;pNext = pCurrent->pPrev;
pCurrent-gt;pPrev = temp;

pHead = pCurrent;

pCurrent = temp;
}

(Continued on next question...)

Other Interview Questions