码迷,mamicode.com
首页 > 其他好文 > 详细

单链表逆序

时间:2015-04-16 01:04:27      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

 

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!