第一种方法可以使用双指针
class solution:
def reverseBetween (self,head:ListNode,m:int,n:int) ->listNode:
res=head(-1)#表头节点
res.next = head
#前序节点
pre = res
#当前节点
cur = head
#找到m
for i in range(1,m):
pre = cur
cur = cur.next
#从m反转到n
for i in range(m, n):
temp = cur.next
cur.next = temp.next
temp.next = pre.next
pre.next = temp
#返回去掉表头
return res.next
同时,我们也可以利用“尾插法”实现 ,这里就不一一详述了