力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 单指针即可 public ListNode oddEvenList (ListNode head) { // write code here 双队列也能做,但是耗空间 //使用双指针 偶数与奇数位置各有一个指针 if(head==null){ return null; } ListNode odd = head; //奇数位置指针 ListNode even = head.next; //偶数位置指针 ListNode evenHead = even; //偶数结果集 while(even!=null&&even.next!=null){ odd.next = odd.next.next; //指向下一个奇数位置 even.next = even.next.next;////指向下一个偶数位置 odd = odd.next; //指向奇数位置 even = even.next; //指向偶数位置 } //经过上面循环体后,产生了两段链表,连接即可 odd.next = evenHead; return head; }