Skip to content

Commit 58168eb

Browse files
committed
feat: reorder-list
1 parent 3c8f1c8 commit 58168eb

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

‎reorder-list/minji-go.java‎

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* <a href="https://leetcode.com/problems/reorder-list/">week11-2. reorder-list</a>
3+
* <li>Description: Reorder the list to be on the following form: L0 → Ln → L1 → Ln - 1 → L2 → ... </li>
4+
* <li>Topics: Linked List, Two Pointers, Stack, Recursion </li>
5+
* <li>Time Complexity: O(N), Runtime 5ms </li>
6+
* <li>Space Complexity: O(N), Memory 47.96MB </li>
7+
*/
8+
class Solution {
9+
public void reorderList(ListNode head) {
10+
Deque<ListNode> deque = new ArrayDeque<>();
11+
12+
ListNode node = head;
13+
while (node != null) {
14+
deque.addLast(node);
15+
node = node.next;
16+
}
17+
18+
ListNode curr = deque.removeFirst();
19+
while (!deque.isEmpty()) {
20+
curr.next = deque.removeLast();
21+
curr = curr.next;
22+
if (!deque.isEmpty()) {
23+
curr.next = deque.removeFirst();
24+
curr = curr.next;
25+
}
26+
}
27+
curr.next = null;
28+
}
29+
}

0 commit comments

Comments
 (0)