-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathReverseList.cpp
More file actions
44 lines (32 loc) · 841 Bytes
/
ReverseList.cpp
File metadata and controls
44 lines (32 loc) · 841 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
using namespace std;
struct ListNode {
int val;
ListNode *next;
ListNode(): val(0), next(nullptr) {}
ListNode(int x): val(x), next(nullptr) {}
ListNode(int x, ListNode *next): val(x), next(next) {}
};
ListNode* reverseList( ListNode *now, ListNode *last) {
if( now == nullptr) return nullptr;
ListNode *head = nullptr;
if( now->next != nullptr)
head = reverseList( now->next, now);
else
head = now;
now->next = last;
return head;
}
int main(void) {
ListNode *head = new ListNode(1);
head->next = new ListNode(2);
head->next->next = new ListNode(3);
head->next->next->next = new ListNode(4);
ListNode *p = reverseList(head, nullptr);
while(p) {
cout << p->val << " -> ";
p = p->next;
}
cout << "end" << endl;
return 0;
}