328. Odd Even Linked List - cocoder39/coco39_LC GitHub Wiki

328. Odd Even Linked List

ListNode* oddEvenList(ListNode* head) {
        if (! head) {
            return nullptr;
        }
        
        ListNode* odd = head;
        ListNode* evenHead = head->next;
        ListNode* even = evenHead;
        while (even && even->next) {
            odd->next = even->next;
            odd = odd->next;
            
            even->next = even->next->next;
            even = even->next;
        }
        odd->next = evenHead;
        return head;
    }