Files
leetcode/92.reverse-linked-list-ii.java
2025-10-29 10:18:53 +08:00

49 lines
1.1 KiB
Java

/*
* @lc app=leetcode id=92 lang=java
*
* [92] Reverse Linked List II
*/
// @lc code=start
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
/**
* 链表逆序:头插法
* @param head
* @param left
* @param right
* @return
*/
public ListNode reverseBetween(ListNode head, int left, int right) {
ListNode dummy = new ListNode(0);
dummy.next = head;
ListNode prev, frm;
prev = frm = dummy;
for(int i = 0; i<left-1; i++) {
prev = prev.next;
}
for(int i = 0; i < left; i++) {
frm = frm.next;
}
ListNode cur;
for(int i = 0; i<right-left; i++) {
cur = frm.next;
frm.next = cur.next;
cur.next = prev.next;
prev.next = cur;
}
return dummy.next;
}
}
// @lc code=end