92. 反转链表 II

https://leetcode-cn.com/problems/reverse-linked-list-ii/

解法一:

一次遍历,先找到翻转处,然后头插。

class Solution:
    def reverseBetween(self, head: ListNode, m: int, n: int) -> ListNode:
        Head = ListNode(0)
        Head.next = head
        pre = i = Head
        for _ in range(m):  #i移动到翻转处
            pre = i
            i = i.next
        #将i之后的n-m-1个结点头插到i之前
        j = i.next      
        for _ in range(n-m):    
            tmp = j     #记录j
            j = j.next
            tmp.next = pre.next
            pre.next = tmp
        i.next = j
        return Head.next

最后更新于