import java.util.*; public class Solution { /** * * @param head ListNode类 * @param m int整型 * @param n int整型 * @return ListNode类 */ public ListNode reverseBetween (ListNode head, int m, int n) { // write code here ListNode h = new ListNode(-1); h.next = head; ListNode p = h; ListNode pre = p; int t = m; while(t-- > 0) { pre = p; p = p.next; } pre.next = reverse(p, n - m + 1); return h.next; } private ListNode reverse(ListNode head, int size) { ListNode l = null; ListNode r = head; ListNode t; while (size-- > 0) { t = r.next; r.next = l; l = r; r = t; if (size == 0) { head.next = t; } } return l; } }