Easy C++ solution | TC: O(n) , SC: O(1)
Step 1:   Find the middle node of linked list by slow and fast pointer technique.\nStep 2: Divide the linked list into 2 , one from start to mid and second from
**Step 1**:   Find the middle node of linked list by slow and fast pointer technique.\n**Step 2**: Divide the linked list into 2 , one from start to mid and second from mid+1 to end.\n**Step 3**: Reverse the second linked list.\n**Step 4**: At last, Merge the 2 linked list.\n\n```\nclass Solution {\n    ListNode* reverse(ListNode* head){\n        ListNode* prev = NULL;\n        ListNode* curr = head;\n        ListNode* nexxt;\n        \n        while(curr){\n            nexxt = curr->next;\n            curr->next = prev;\n            prev = curr;\n            curr = nexxt;\n        }\n        return prev;\n    }\n    \npublic:\n    void reorderList(ListNode* head) {\n        //base case\n        if(!head || !(head->next) || !(head->next->next)) return;\n        \n        //Step1: Find middle node (in case of even length, find first middle node)\n        ListNode* slow = head;\n        ListNode* fast = head->next;\n        \n        while(fast and fast->next){\n            fast = fast->next->next;\n            slow = slow->next;\n        }\n        \n\t\t//break linked list into 2 (first from start to mid and second from mid+1 to end)\n        ListNode* head2 = slow->next;\n        slow->next = NULL;\n        \n        //Step2: Reverse linked list 2 (from mid+1 to end)\n        head2 = reverse(head2);\n        \n        //Step3: Merge 2 linked lists\n        ListNode* h = head;\n        while(head2){\n            ListNode* temp = head2->next;\n            head2->next = h->next;\n            h ->next = head2;\n            head2 = temp;\n            h = h->next->next;\n        }\n    }\n};\n```\n\n**Time Complexity:  O(n)** \nO(n/2) to find middle node + O(n/2) to reverse second linked list + O(n/2) to merge 2 list = O(n)\n**Space Complexity: O(1)**\n\n***Please Upvote, if you find the solution helpful.\nHappy Coding!***
['C']