File tree Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change
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
+
You can’t perform that action at this time.
0 commit comments