1class Solution {2public:3ListNode *solve(ListNode *head, ListNode *temp) {4if (temp == NULL) return head;5ListNode *curr = solve(head, temp->next);6if (!curr) return NULL;7if (curr == temp) {8curr->next = NULL;9return nullptr;10}11if (curr->next == temp) {12temp->next = nullptr;13return NULL;14}15temp->next = curr->next;16curr->next = temp;17curr = temp->next;18return curr;19}20void reorderList(ListNode *head) {21solve(head, head);22}23};