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

反转链表

时间:2015-09-06 20:00:59      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:

对单链表进行反转,程序:

 1 struct  ListNode
 2 {
 3     int val;
 4     ListNode *next;
 5 };
 6 
 7 ListNode* ReverseList(ListNode *pHead)
 8 {
 9     ListNode *pReversedHead = NULL;
10     ListNode *pNode = pHead;
11     ListNode *pPrev=NULL;
12 
13     while(pNode!=NULL)
14     {
15         ListNode* pNext=pNode->next;
16 
17         if(pNext==NULL)
18             pReversedHead=pNode;
19 
20         pNode->next=pPrev;
21 
22         pPrev=pNode;
23         pNode=pNext;
24     }
25 
26     return pReversedHead;
27 }

注意点:

  (1)空链表的输入,整个链表只有一个节点的情况;

  (2)定义3个指针,分别指向“当前结点”、“前一个结点”、“后一个结点”,以及不同结点的初始化;

  (3)反转后的链表的头结点指针

 

反转链表

标签:

原文地址:http://www.cnblogs.com/acode/p/4786834.html

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