建立一个vector数组用来存放在[m,n]区间中的链表节点
ListNode* reverseBetween(ListNode* head, int m, int n) {
int i=1;
std::vector<ListNode*> list;
ListNode *n2=new ListNode(0);
ListNode *n3=n2;
//ListNode*n2=head;
while(i!=m){
n3->next=head;
head=head->next;
n3=n3->next;
i=i+1;
}
while(i!=n+1){
list.push_back(head);
i=i+1;
head=head->next;
}
for(int i=m;i<=n;i++){
ListNode* h=list.back();
list.pop_back();
n3->next=h;
n3=n3->next;
}
n3->next=head;
return n2->next;
}
手写调试过程