Skip to content

原题链接

LeetCode 328

typescript
function oddEvenList(head: ListNode | null): ListNode | null {
    if(!head) {
        return null;
    }
 // 思路:按奇偶位拆分链表 然后再组合起来
    let evenHead = head.next;
    // 指向奇偶位的指针
    let odd = head;
    let even = 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;
};