题目
解题:双指针
oddHead 其实就是 head,可以直接用 head 代替。
写完后建议用奇数长度和偶数长度的链表各走一遍来检查。
// javascript
var oddEvenList = function(head) {
if (head === null || head.next === null) return head;
const oddHead = head, evenHead = head.next;
let odd = oddHead, even = evenHead;
// even 可以指向 null,但 odd 不行,odd应该指向最后一个非 null 的奇数节点,然后
// odd.next = evenHead 将两个链表相连接
while (even !== null && even.next !== null) {
odd.next = even.next;
odd = odd.next;
even.next = odd.next;
even = even.next;
}
odd.next = evenHead;
return oddHead;
};