倒置链表递归方式

前面已经有一个循环形式的。

现在加一个递归形式。

当然,如果循环形式的已经写出,递归也就信手拈来。


代码

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);
}

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...