题目原文:
Given a singly linked list L: L0→L1→…→Ln-1→Ln,
reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…
题目大意:
给出一个链表,要求按“头尾相接”的方式重排。
题目分析:
没有按照题目要求去做,先用一个数组保存下所有节点的值,再依次填上。
源码:(language:java)
public class Solution {
public void reorderList(ListNode head) {
List<Integer> list = new ArrayList<Integer>();
for(ListNode node = head;node!=null;node=node.next)
list.add(node.val);
int i = 0,j = list.size()-1;
ListNode node = head;
boolean addi = true;
while (i <= j) {
node.val = addi?list.get(i++):list.get(j--);
addi=!addi;
node=node.next;
}
}
}
成绩:
8ms,beats 3.74%,众数3ms,51.93%
cmershen的碎碎念:
如果此题改用LinkedList,会超时。