list_node * relocate(list_node * head)
{
    //////在下面完成代码
    if(head == nullptr || head->next == nullptr) return head;
    list_node* slow = head;
    list_node* fast = head;
    while(fast->next != nullptr && fast->next->next != nullptr) {
        slow = slow->next;
        fast = fast->next->next;
    }
    if(fast->next == nullptr) ;
    else if(fast->next->next == nullptr) slow = slow->next;
    fast = head;
    while(fast->next != slow) fast = fast->next;
    fast->next = nullptr;
    fast = head;
    while(fast != nullptr) {
        list_node* tmp = slow;
        slow = slow->next;
        tmp->next = fast->next;
        fast->next = tmp;
        fast = tmp->next;
        if(fast == nullptr && slow != nullptr)
            tmp->next = slow;
    }
    return head;
}