package test;
import java.util.*;
public class ReverseList
{
public ReverseList(){}
public ListNode reverseBetween(ListNode head, int m, int n)
{
if(head == null)
{return null;}
int i=1;
if(m == 1)
{
ListNode end_Node= head;
ListNode first_Node= head;
ListNode temp_Node= head.next;
while(i < n)
{
end_Node.next= temp_Node.next;
temp_Node.next= first_Node;
first_Node= temp_Node;
temp_Node= end_Node.next;
i++;
}
return first_Node;
}
ListNode first_Node= head;
while(i < m-1)
{
first_Node= first_Node.next;
i++;
}
i++;
ListNode end_Node= first_Node.next;
ListNode temp_Node= end_Node.next;
while(i < n)
{
end_Node.next= temp_Node.next;
temp_Node.next= first_Node.next;
first_Node.next= temp_Node;
temp_Node= end_Node.next;
i++;
}
return head;
}
}