首页 > 其他 > 详细

链表翻转的递归算法

时间:2014-04-23 22:32:40      阅读:521      评论:0      收藏:0      [点我收藏+]
#include "stdafx.h"
 
// 这是链表逆序的递归算法
 
struct Node
{
	Node* pNext;
	int value;
};
 
Node* Invert(NodepHeadNodepListNode* &pRHead)
{
	if (pList == NULL)
	{
		pRHead = pHead;
		return pHead;
	}
	else
	{
		Node* pRevertTail = Invert(pListpList->pNext, pRHead);
		pRevertTail->pNext = pHead;
		pHead->pNext = NULL;
		return pHead;
	}
}
 
Node* RecursionInvertList(NodepHead)
{
	if(pHead == NULL)
	{
		return pHead;
	}
	else
	{
		Node* pRHead = NULL;
		Invert(pHeadpHead->pNext, pRHead);
		return pRHead;
	}
}
 
int _tmain(int argc_TCHARargv[])
{
	// create a list
	Node* pHead = NULL;
	Node* pTail = NULL;
	for(int index = 0; index < 10; index++)
	{
		if(pHead == NULL)
		{
			pHead = pTail = new Node();
			pHead->pNext = NULL;
			pHead->value = index;
		}
		else
		{
			Node* temp = new Node();
			temp->pNext = NULL;
			temp->value = index;
			pTail->pNext = temp;
			pTail = temp;
		}
	}
	
	Node* pTemp = pHead;
	while (pTemp)
	{
		printf("%d ", pTemp->value);
		pTemp = pTemp->pNext;
	}
	printf("\n");
 
	Node* pRHead = RecursionInvertList(pHead);
 
	pTemp = pRHead;
	while (pTemp)
	{
		printf("%d ", pTemp->value);
		pTemp = pTemp->pNext;
	}
	return 0;
}

链表翻转的递归算法,布布扣,bubuko.com

链表翻转的递归算法

原文:http://www.cnblogs.com/bsqdevspace/p/3679428.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!