Easy recursive solution in C++
Approach: Add the last node in front of the first and then recurse for the next to next node\n\nvoid reorderList(ListNode* head) \n    {\n\t\n\t    //in case of
Approach: Add the last node in front of the first and then recurse for the next to next node\n```\nvoid reorderList(ListNode* head) \n    {\n\t\n\t    //in case of a list with <=2 nodes, no change is required\n        if(head==nullptr || head->next==nullptr || head->next->next==nullptr)\n            return;\t\n\t\t\n\t\t//last here is actually the 2nd last node of the list\n        ListNode *last=head;\n        while(last->next->next) \n            last=last->next;\n\t\t\t\n\t\t//moving the last node right next to the front node\n        last->next->next=head->next;\n        head->next=last->next;\n        last->next=nullptr;\n        reorderList(head->next->next);\n    }\n```
['Recursion', 'C']