0%

LeetCode-143

题目

结果

代码

双指针

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution {
public void reorderList(ListNode head) {
if (head == null) {
return;
}
List<ListNode> arrayList = new ArrayList<>();
ListNode p = head;
while (p != null) {
arrayList.add(p);
p = p.next;
}

int left = 0, right = arrayList.size() - 1;
while (left < right) {
ListNode node1 = arrayList.get(left);
ListNode node2 = arrayList.get(right);
node2.next = node1.next;
node1.next = node2;
left++;
right--;
}
arrayList.get(arrayList.size() / 2).next = null;
}
}

复杂度

时间复杂度:O(n)

空间复杂度:O(n)