题目
给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。
思路
定义reverse(head,n)
翻转从1-n的链表
代码
class Solution {
ListNode last = null;
public ListNode reverseBetween(ListNode head, int left, int right) {
if(left == 1) return reverse(head,right);
head.next = reverseBetween(head.next,left-1,right-1);
return head;
}
public ListNode reverse(ListNode head , int n){
if(n == 1){
last = head.next;
return head;
}
ListNode newHead = reverse(head.next,n-1);
head.next.next = head;
head.next = last;
return newHead;
}
}