反转链表就用头插法
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution(object):
def reverseBetween(self, head, left, right):
"""
:type head: ListNode
:type left: int
:type right: int
:rtype: ListNode
"""
begin=cur=LN_head=ListNode()
LN_head.next=head
i=1
while i<left:
begin=begin.next
i+=1
end=begin.next
for i in range(right-left):
temp=end.next
end.next=end.next.next
temp.next=begin.next
begin.next=temp
return LN_head.next