leecode 143. 重排链表

Posted go大鸡腿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leecode 143. 重排链表相关的知识,希望对你有一定的参考价值。

文章目录

题目

在这里插入图片描述

题解

链表不适合排序,所以先把他搞成数组,然后将next进行重设,最后把多余的节点掐掉

代码

class Solution {
    public void reorderList(ListNode head) {
        //链表转list存储
        List<ListNode> list = new ArrayList();
        ListNode temp = head;
        while (temp != null) {
            list.add(temp);
            temp = temp.next;
        }
        int i = 0;
        int j = list.size() - 1;
        while (i < j) {
            list.get(i).next = list.get(j);
            i = i + 1;
            list.get(j).next = list.get(i);
            j = j - 1;
        }
        if(list.size()%2==0){
            list.get(j+1).next = null;
        }else {
            list.get(i).next = null;
        }
    }
}

以上是关于leecode 143. 重排链表的主要内容,如果未能解决你的问题,请参考以下文章

143. 重排链表

[LeetCode] 143. 重排链表

LeetCode:143. 重排链表

LeetCode - 143 - 重排链表 - Java - 两种解法 - 细致

Leetcode 143 重排链表

链表143. 重排链表