给定一个单链表,请设定一个函数,将链表的奇数位节点和偶数位节点分别放在一起,重排后输出。
注意是节点的编号而非节点的数值。
数据范围:节点数量满足 0≤𝑛≤10^5,节点中的值都满足 0≤𝑣𝑎𝑙≤1000
要求:空间复杂度 𝑂(𝑛),时间复杂度 𝑂(𝑛)
public class Solution {
public ListNode oddEvenList (ListNode head) {
if(head==null)
return head;
ListNode even=head.next;
ListNode odd=head;
ListNode evenhead=even;
while(even!=null&&even.next!=null){
odd.next=even.next;
odd=odd.next;
even.next=odd.next;
even=even.next;
}
odd.next=evenhead;
return head;
}
}