前面已经有一个循环形式的。
现在加一个递归形式。
当然,如果循环形式的已经写出,递归也就信手拈来。
源代码:
struct ListNode
{
int nData;
ListNode* pNext;
};
ListNode* Reverse(ListNode* pPrev, ListNode* pCur)
{
if (NULL == pCur->pNext)
{
pCur->pNext = pPrev;
return pCur;
}
ListNode* pNext = pCur->pNext;
pCur->pNext = pPrev;
return Reverse(pCur, pNext);
}
void Reverse(ListNode* &pHead)
{
if (NULL == pHead || NULL == pHead->pNext)
return;
pHead = Reverse(NULL, pHead);
}