forked from DaleStudy/leetcode-study
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbky373.java
33 lines (31 loc) ยท 832 Bytes
/
bky373.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
* time: O(N)
* space: O(N)
*/
class Solution {
public void reorderList(ListNode head) {
if (head.next == null) {
return;
}
ListNode reorderHead = head;
List<ListNode> nodes = new ArrayList<>();
while (head != null) {
ListNode next = head.next;
head.next = null;
nodes.add(head);
head = next;
}
int left = 0;
int right = nodes.size() - 1;
while (left < right) {
reorderHead.next = nodes.get(right);
right--;
left++;
if (left <= right && left < nodes.size()) {
reorderHead = reorderHead.next;
reorderHead.next = nodes.get(left);
reorderHead = reorderHead.next;
}
}
}
}