每日一题力扣92

反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。

class Solution:
    def reverseBetween(self, head: ListNode, m: int, n: int) -> ListNode:
        if m == n:
            return head
        dummy = ListNode(-1)
        dummy.next = head

        a, d = dummy, dummy
        for _ in range(m - 1):
            a = a.next#找到第m个的钱一个节点,要把前一个节点换链接
        for _ in range(n):
            d = d.next#找到第n个节点,要把第n个节点换链接
        b, c = a.next, d.next#b就是第m个节点,c就是n个节点的下一个节点
        pre = b
        cur = pre.next
        while cur != c:
            next = cur.next
            cur.next = pre
            pre = cur
            cur = next
        a.next = d
        b.next = c
        return dummy.next
原文地址:https://www.cnblogs.com/liuxiangyan/p/14532327.html