前面已经有一个循环形式的。
现在加一个递归形式。
当然,如果循环形式的已经写出,递归也就信手拈来。
源代码:
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); }