思路
一个一个往前塞,官网给出的图片展示的很好,直接放图。
具体的指针更改流程:
以此类推 。。。
#python3
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def reverseBetween(self, head: ListNode, left: int, right: int) -> ListNode:
dummy = ListNode(-1)
dummy.next = head
pre = dummy
for _ in range(left-1):
pre = pre.next
cur = pre.next
for _ in range(right - left):
tmp = cur.next
cur.next = tmp.next
tmp.next = pre.next
pre.next = tmp
return dummy.next