Skip to content

Commit fcb00e0

Browse files
committed
refactor: solve reverse linked list with other way
1 parent 6b865f9 commit fcb00e0

File tree

1 file changed

+8
-25
lines changed

1 file changed

+8
-25
lines changed

reverse-linked-list/GangBean.java

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -9,34 +9,17 @@
99
* }
1010
*/
1111
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-
*/
2012
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;
13+
ListNode curr = head;
14+
ListNode prev = null;
15+
while (curr != null) {
16+
ListNode next = curr.next;
17+
curr.next = prev;
18+
prev = curr;
19+
curr = next;
2620
}
2721

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;
22+
return prev;
4023
}
4124
}
4225

0 commit comments

Comments
 (0)