import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param head ListNode类 * @return ListNode类 */ public ListNode oddEvenList (ListNode head) { // write code here if (head == null || head.next == null) return head; /* odd 指向奇数节点的指针 oddHead 指向初始奇数节点的头指针 even 指向偶数节点的指针 evenHead 指向初始偶数节点的头指针 */ ListNode odd = head, oddHead = head, even = head.next, evenHead = head.next; while (even != null && even.next != null) { // 奇数节点指向偶数节点的 next odd.next = even.next; // 奇数节点指针后移 odd = odd.next; // 偶数节点指向奇数节点的 next even.next = odd.next; // 偶数节点指针后移 even = even.next; } // 将奇数节点的 next 指向 偶数节点的初始头指针 odd.next = evenHead; // 返回奇数节点的初始头指针 return oddHead; } }