题解 | #链表的奇偶重排#
链表的奇偶重排
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) { ListNode osNode = null; ListNode jsNode = head; ListNode temp = null; ListNode tempNext = null; List<Integer> jsList = new ArrayList<>(); if (head != null && head.next != null) { osNode = head.next; }else { return head; } while (jsNode != null) { jsList.add(jsNode.val); if (jsNode.next != null) { jsNode = jsNode.next.next; } else { jsNode = null; } } ListNode osNodeTemp = osNode; while (osNodeTemp != null) { if (osNodeTemp.next != null) { osNodeTemp.next = osNodeTemp.next.next; osNodeTemp = osNodeTemp.next; } else { osNodeTemp.next = null; break; } } for (int i = 0; i < jsList.size(); i++) { if (i == 0) { temp = new ListNode(jsList.get(i)); tempNext = temp; } else { tempNext.next = new ListNode(jsList.get(i)); tempNext = tempNext.next; } if (i == jsList.size() - 1) { tempNext.next = osNode; } } return temp; } }