92 指定区间链表逆置
ListNode* reverseBetween(ListNode* head, int m, int n) {
if(m==n)
return head;
ListNode *front=head,*begin=nullptr;
if(m!=1){
for (int x = m - 1; x > 1; --x)
front = front->next;
begin = front;
front = front->next;
}
ListNode *p=front,*b=nullptr,*r=nullptr;
for(int len=n-m+1;len>0;--len){
b=p->next;
p->next=r;
r=p;
p=b;
}
if(m==1)
head=r;
else
begin->next = r;
if(p!=nullptr)
front->next=p;
return head;
}