考点
题解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class Solution { public: ListNode* oddEvenList(ListNode* head) { int cnt = 1; ListNode *dummyHeadA = new ListNode(-1), *curA = dummyHeadA, *dummyHeadB = new ListNode(-1), *curB = dummyHeadB; while (head != nullptr) { if (cnt++ % 2) { curA->next = head; curA = curA->next; } else { curB->next = head; curB = curB->next; } head = head->next; } curA->next = dummyHeadB->next; curB->next = nullptr; return dummyHeadA->next; } };
|
思路
新建两个伪节点,各用来构成奇链表与偶链表
遍历链表时,奇数节点插入至奇链表,偶数节点插入至偶链表;最终将偶链表接在奇链表末尾即可