题解 | #链表的奇偶重排#
链表的奇偶重排
https://www.nowcoder.com/practice/02bf49ea45cd486daa031614f9bd6fc3
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param head ListNode类 * @return ListNode类 */ public ListNode oddEvenList (ListNode head) { if(head == null || head.next == null){ return head; } int count = 1; ListNode oddNode = new ListNode(0); ListNode oddFollow = oddNode; ListNode evenNode = new ListNode(0); ListNode evenFollow = evenNode; while(head != null){ if((count % 2) == 1){ oddFollow.next = head; oddFollow = oddFollow.next; }else{ evenFollow.next = head; evenFollow = evenFollow.next; } head = head.next; count++; } // 由于偶数在后面,无next对象,这里需要创建一个null,否则报错 evenFollow.next = null; // 奇数链表后跟偶数链表 oddFollow.next = evenNode.next; return oddNode.next; } }