1、链表
我们可以使用链表evenHead来记录偶数位置的链表节点。在一次循环中,我们分别处理奇数位置和偶数位置的节点。最终我们将当前奇数位置节点的next指向evenHead即可。
class Solution {
public:
ListNode* oddEvenList(ListNode* head) {
if (head == nullptr) {
return head;
}
ListNode* evenHead = head->next;
ListNode* odd = head;
ListNode* even = evenHead;
while (even != nullptr && even->next != nullptr) {
odd->next = even->next;
odd = odd->next;
even->next = odd->next;
even = even->next;
}
odd->next = evenHead;
return head;
}
};