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;
}
/**
* 解体思路:
* 1、遍历整个队列,提取出所有的偶数节点放入到list中
* 2、遍历的同时,剔除掉偶数节点,也就是把所有的奇数节点组装起来
* 3、把偶数节点追加到奇数节点后面
* 4、最后一步,不要忘了把最后一个节点的next置为null
*
*/
List<ListNode> list = new ArrayList<>();
ListNode result = head;
ListNode temp = head;
boolean flag = false;
while(temp != null) {
if(flag) {
list.add(temp);
if(temp.next!= null) {
result.next = temp.next;
result = result.next;
}
}
temp = temp.next;
flag = !flag;
}
for(ListNode node : list) {
result.next = node;
result = node;
}
result.next = null;
return head;
}
}