题解 | #链表内指定区间反转#
链表内指定区间反转
https://www.nowcoder.com/practice/b58434e200a648c589ca2063f1faf58c
# 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 # 处理特殊情况,如果m和n相等或链表为空,则直接返回原链表 if m == n or not head: return head # 使用dummy节点作为新链表的头节点,并连接原链表的头节点 dummy = ListNode(0) dummy.next = head prev = dummy # 找到需要反转区间的前一个节点 for _ in range(m - 1): prev = prev.next # curr指向需要反转的起始节点 curr = prev.next # 反转区间内的节点 for _ in range(n - m): temp = curr.next curr.next = temp.next temp.next = prev.next prev.next = temp # 返回新链表的头节点 return dummy.next