标签:
1.辅助指针
void ReverseList(LinkList* ListHead)
{
if(NULL==ListHead || NULL==ListHead->next)
return;
LinkList* pPre=ListHead;
LinkList* pCur=ListHead->next;
LinkList* pNext=NULL;
while(NULL!=pCur)
{
pNext=pCur->next;
pCur->next=pPre;
pPre=pCur;
pCur=pNext;
}
ListHead->next=NULL;
ListHead=pPre;
}
2.递归
void ReverseList(LinkedNode* pCur, LinkedNode* pHead)
{
if(NULL==pCur || NULL==pCur->next)
pHead=pCur;
else
{
LinkedNode* pNext=pCur->next;
ReverseList(pNext,pHead);
pNext->next=pCur;
pCur->next=NULL;
}
}
#从尾节点开始逆序;在最后1个节点时,进行了pCur->next非空的判断;并且每一次的转化都将上一个节点的next置为NULL;由于递归函数记录了节点的信息,并不会造成数据的丢失。
标签:
原文地址:http://www.cnblogs.com/hj-blog/p/4430527.html