from dataclasses import FrozenInstanceError # class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param head ListNode类 # @param m int整型 # @param n int整型 # @return ListNode类 # class Solution: def reverseBetween(self , head: ListNode, m: int, n: int) -> ListNode: # write code here if not head: return None if m == n: return head count = 1 temp1 = head pre = None after = head while head: # 保存断掉的节点 # 1 连接 4; 4 -》 head_connect.next = first # 2 连接 5; 5 -》 end.next = tail_connect # if count == m: head_connect = pre end = after if count == n: tail_connect = after.next first = after # 可能会导致断链 after == head # 3 个元素 调整2次链接 if count >= m and count <=n: temp = after.next after.next = pre pre = after after = temp head = after else: pre = after after = after.next head = head.next count += 1 # m == 1 1 链接 5 # n == 5 2 链接 Null if m == 1: end.next = tail_connect temp1 = first # elif (count - 1) == n: # head_connect.next = first # end.next = None # elif m == 1 and (count - 1) == n: # pass else: end.next = tail_connect head_connect.next = first return temp1