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;
    }
原文地址:https://www.cnblogs.com/INnoVationv2/p/10150443.html