leecode 143. 重排链表

文章目录

  • 题目
  • 题解
  • 代码

题目

leecode 143. 重排链表_第1张图片

题解

链表不适合排序,所以先把他搞成数组,然后将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;
        }
    }
}

你可能感兴趣的:(算法,算法,leetcode)