反转从位置 mn 的链表。请使用一趟扫描完成反转。
    说明:
    1 ≤ mn ≤ 链表长度。

    输入: 1->2->3->4->5->NULL, m = 2, n = 4 输出: 1->4->3->2->5->NULL

    1. class Solution {
    2. ListNode successor = null; //后驱结点
    3. public ListNode reverseN(ListNode head, int n){
    4. //base case
    5. if(n == 1){
    6. successor = head.next;
    7. return head;
    8. }
    9. ListNode last = reverseN(head.next, n - 1);
    10. head.next.next = head;
    11. head.next = successor;
    12. return last;
    13. }
    14. public ListNode reverseBetween(ListNode head, int m, int n){
    15. //base case
    16. if(m == 1){
    17. return reverseN(head, n);
    18. }
    19. head.next = reverseBetween(head.next, m - 1, n - 1);
    20. return head;
    21. }
    22. }

    https://leetcode-cn.com/problems/reverse-linked-list-ii/solution/bu-bu-chai-jie-ru-he-di-gui-di-fan-zhuan-lian-biao/