✅ C++ Solution ||  Recursive Approch || Short Code || Using stack frame of Recursion
In this problem, the basic idea I have used is that we will use the stack frame of each recursive stage.\n\nHere we are doing all thing while returnning from th
In this problem, the basic idea I have used is that we will use the **stack frame of each recursive stage**.\n\nHere we are doing all thing while returnning from the last node.\n\nHere we will 1st recursivelly traverse to the end of the list then connect first element with last element and last element with 2ndnelement. So, 1st-->last-->2nd this will be our new pattern and we are still on the last stack frame of recursive stack, from here we will return 3rd node which is named as 2nd here(I will use "2nd" name here ) . Now we wiil be on the 2nd last stack frame of recursion, now we will connect 2nd with with 2nd last node now again we repeat above steps untill :-\n1.)curr node(from start)become NULL or\n2.) curr node (from start) and temp (node from current stack frame) are equal or \n3.)current->next == temp.\n\nLets take an :-\n![image](https://assets.leetcode.com/users/images/30824bf7-bd6a-4f0a-9a71-f0e1eced8ff7_1656154953.5404239.jpeg)\n\n\t*If you find it helpful then upvote pls..*\n\n```\nListNode *sol(ListNode *head, ListNode *temp)\n    {\n        if(temp == NULL)return head;\n        \n        ListNode *curr = sol(head, temp->next);\n        \n        if(!curr)return NULL;\n        if(curr==temp){\n            curr->next = NULL;\n            return NULL;\n        }\n        if(curr->next == temp)\n        {\n            temp->next=NULL;\n            return NULL;\n        }\n        \n        temp->next = curr->next;\n        curr->next = temp;\n        curr = temp->next;\n        \n        return curr;\n    }\n    void reorderList(ListNode* head) {\n        sol(head, head);\n    }\n\t\n
['Linked List', 'Recursion', 'C']