标签:
对单链表进行反转,程序:
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