classSolution{publicListNodereverseBetween(ListNode head,int left,int right){if(head.next ==null)return head;ListNode dummy =newListNode(-501, head);ListNode leftPrev = dummy, cur = head;// Find the leftfor(int i =0; i < left -1;++i){
leftPrev = cur;
cur = cur.next;}ListNode prev =null;// Start reversingfor(int i =0; i < right - left +1;++i){ListNode next = cur.next;
cur.next = prev;
prev = cur;
cur = next;}// Updating the pointers
leftPrev.next.next = cur;
leftPrev.next = prev;return dummy.next;}}