关闭

Middle-题目109:143. Reorder List

109人阅读 评论(0) 收藏 举报
分类:

题目原文:
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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:56304次
    • 积分:3204
    • 等级:
    • 排名:第10668名
    • 原创:270篇
    • 转载:53篇
    • 译文:0篇
    • 评论:7条
    文章分类
    最新评论