题目描述
输入一个链表,反转链表后,输出链表的所有元素。
解答:关键是要保存表头
1 /* 2 struct ListNode { 3 int val; 4 struct ListNode *next; 5 ListNode(int x) : 6 val(x), next(NULL) { 7 } 8 };*/ 9 class Solution { 10 public: 11 ListNode* ReverseList(ListNode* pHead) { 12 if(pHead == NULL||pHead->next == NULL) return pHead; 13 ListNode *First = pHead->next->next,*Sec = pHead->next,*Trd = pHead; 14 while(First!=NULL){ 15 Sec->next = Trd; 16 Trd = Sec; 17 Sec = First; 18 First = First->next; 19 } 20 Sec->next = Trd; 21 Trd = Sec; 22 pHead->next = NULL; 23 return Sec; 24 } 25 };