题解 | #链表内指定区间反转#
链表内指定区间反转
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类
#
#python要有python的解法,题解里面大部分都是c语言的解法。巧妙利用list的切片级reverse函数。
class Solution:
def reverseBetween(self , head: ListNode, m: int, n: int) -> ListNode:
# write code here
res = []
ret = []
temp = head
while temp is not None:
res.append(temp.val)
temp = temp.next
middle = res[m-1:n:1]
middle.reverse()
ret.extend(res[:m-1:])
ret.extend(middle)
ret.extend(res[n::])
print(ret)
temp = head
for i in range(len(ret)):
temp.val = ret[i]
temp = temp.next
return head