Middle-题目109:143. Reorder List

来源:互联网 发布:软件报价体系 编辑:程序博客网 时间:2024/05/16 01:01

题目原文:
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,会超时。

0 0