https://oj.leetcode.com/problems/reverse-linked-list-ii/
http://blog.csdn.net/linhuanmars/article/details/24613781
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public ListNode reverseBetween(ListNode head, int m, int n) { // Add dummyhead; ListNode dummyhead = new ListNode(0); dummyhead.next = head; // Find the one to reverse ListNode pre = dummyhead; ListNode node = head; for (int i = 1 ; i < m ; i ++) { pre = pre.next; node = node.next; } // Reverse node (n - m) times for (int i = 0 ; i < n - m ; i ++) { ListNode next = node.next; node.next = next.next; // Assuming next won‘t be null since 1 ≤ m ≤ n ≤ length of list. next.next = pre.next; pre.next = next; } head = dummyhead.next; dummyhead.next = null; return head; } }
[LeetCode]92 Reverse Linked List II
原文:http://7371901.blog.51cto.com/7361901/1599338