反转从位置 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