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 if (head == null){ return null; } ListNode oddNodeTail = head; ListNode evenNodeHead = head.next; ListNode currentNode = head; boolean isOdd = true; while (currentNode.next != null){ ListNode preservedNextNode = currentNode.next; ListNode tempNode = this.getNextNextNode(currentNode); currentNode.next = tempNode; if (isOdd){ oddNodeTail = tempNode != null ? tempNode : currentNode; isOdd = false; }else{ isOdd = true; } currentNode = preservedNextNode; } oddNodeTail.next = evenNodeHead; return head; } public ListNode getNextNextNode (ListNode node){ if (node == null){ return null; } if (node.next == null){ return null; } return node.next.next; } }