定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。
思考题:
样例
1
2
3
|
输入:1->2->3->4->5->NULL
输出:5->4->3->2->1->NULL
|
解题代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#define Node ListNode
class Solution {
public:
ListNode* reverseList(ListNode* head) {
if(head==NULL || head->next == NULL) return head;
//头插法
//ListNode fake(-1);
ListNode * p = NULL;
while(true) {
if(head==NULL) break;
auto next= head->next;
head->next = p;
p = head;
head = next;
//head->next =
}
return p;
}
};
|