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) { // write code here // 解题思路:1、遍历链表 当i%2 == 0 说明是偶数,便放进偶数的链表里 // 否则是奇数,则放进奇数的链表里 // 遍历完之后记得把偶数链表的最后一个元素的next清空,因为它后面可能还有其他节点 // 最后把奇数链表的next 指向偶数链表 if(head == null || head.next == null){ return head; } int i=1; ListNode oNode = new ListNode(-1); ListNode oCur = oNode; ListNode jNode = new ListNode(-1); ListNode jCur = jNode; while(head != null){ // 偶数位 if(i %2 ==0){ oCur.next = head; oCur = oCur.next; }else{ jCur.next = head; jCur = jCur.next; } i++; head = head.next; } // 把偶数链表的next清空,因为后面可能还有节点 oCur.next = null; jCur.next = oNode.next; return jNode.next; } }