题解 | 链表的奇偶重排
链表的奇偶重排
https://www.nowcoder.com/practice/02bf49ea45cd486daa031614f9bd6fc3
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* ListNode(int x) : val(x), next(nullptr) {}
* };
*/
class Solution {
public:
ListNode* oddEvenList(ListNode* head) {
if (head == nullptr) return nullptr;
ListNode* oddList1 = new ListNode(0);
ListNode* oddList = oddList1;
ListNode* evenList1 = new ListNode(0);
ListNode* evenList = evenList1;
int count = 0;
while (head) {
if (count%2 == 0) {
oddList->next = new ListNode(head->val);
oddList = oddList->next;
} else {
evenList->next = new ListNode(head->val);
evenList = evenList->next;
}
count++;
head = head->next;
}
oddList->next = evenList1->next;
return oddList1->next;
}
};
查看10道真题和解析