Skip to content

Commit ff209e6

Browse files
committed
feat: solve reverse linked list
1 parent 0898647 commit ff209e6

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

reverse-linked-list/GangBean.java

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/**
2+
* Definition for singly-linked list.
3+
* public class ListNode {
4+
* int val;
5+
* ListNode next;
6+
* ListNode() {}
7+
* ListNode(int val) { this.val = val; }
8+
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
9+
* }
10+
*/
11+
class Solution {
12+
/**
13+
1. strategy
14+
- iterate over all Node, save value to list
15+
- iterate list in reverse order, create Node and link
16+
2. complexity
17+
- time: O(N)
18+
- space: O(N)
19+
*/
20+
public ListNode reverseList(ListNode head) {
21+
List<Integer> list = new ArrayList<>();
22+
23+
while (head != null) {
24+
list.add(head.val);
25+
head = head.next;
26+
}
27+
28+
ListNode prev = new ListNode();
29+
ListNode ret = null;
30+
31+
for (int i=list.size()-1; i>=0; i--) {
32+
ListNode node = new ListNode(list.get(i));
33+
prev.next = node;
34+
prev = prev.next;
35+
if (ret == null) {
36+
ret = prev;
37+
}
38+
}
39+
return ret;
40+
}
41+
}
42+

0 commit comments

Comments
 (0)