/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @param m int整型 * @param n int整型 * @return ListNode类 */ ListNode* reverseBetween(ListNode* head, int m, int n) { // write code here deque <int >v; while(head!=nullptr){ v.push_back(head->val); head=head->next; } reverse(v.begin()+m-1,v.begin()+n); ListNode* head2=nullptr; ListNode* tail=nullptr; while(!v.empty()){ if(tail==nullptr){ ListNode*p=new ListNode(0); p->val=v.front(); head2=p; tail=p; v.pop_front(); } else { ListNode*p=new ListNode(0); p->val=v.front(); tail->next=p; tail=p; v.pop_front(); } } return head2; } };