public ListNode reverseBetween(ListNode head, int left, int right) {
ListNode newhead = new ListNode(), pre = newhead;
newhead.next = head;
for(int i = 1; i < left; i++){
pre = pre.next;
}
pre.next = reverse(pre.next, right - left + 1);
return newhead.next;
}
/*
** ListNode head : 需要翻转部分的头结点
* int l : 翻转的长度
*/
public ListNode reverse(ListNode head, int l){
ListNode pre = new ListNode(), cur = head, p = null;
while(l > 0){
p = cur.next;
cur.next = pre.next;
pre.next = cur;
cur = p;
l--;
}
head.next = cur;
return pre.next;
}
LeetCode92. 反转链表II
最新推荐文章于 2023-12-15 20:22:33 发布