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