本文共 1021 字,大约阅读时间需要 3 分钟。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */class Solution { public void reorderList(ListNode head) { Listlist = new ArrayList<>(); ListNode node = head; //将链表放进数组 while(node != null) { list.add(node); node = node.next; } int l = 1; int r = list.size() - 1; ListNode p = head; while(l <= r) { p.next = list.get(r); p = p.next; p.next = list.get(l); p = p.next; l++; r--; //当l==r的时候左右指针只用加一次 if(l == r) { p.next = list.get(r); p = p.next; } } if(p != null) { p.next = null;//防止出现环形链表 } }}
转载地址:http://tlhzi.baihongyu.com/