/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ #include <cstddef> #include <vector> class Solution { public: void reorderList(ListNode *head) { vector<int> a,b; ListNode *s=head; while(s!=nullptr) { a.push_back(s->val); s=s->next; } if(a.size()<=2) { return; } s=head; if(a.size()%2==0) { for(int i=a.size()-1;i>a.size()/2-1;i--) { s=s->next; s->val=a[i]; s=s->next; } } else { for(int i=a.size()-1;i>a.size()/2;i--) { s=s->next; s->val=a[i]; s=s->next; } } for(int i=1;i<=a.size()/2;i++) { if(head!=nullptr) { head=head->next; } if(head->next!=nullptr) { head=head->next; head->val=a[i]; } } } };