python题解
首先找到n和m的位置,然后逆转,之后输出:
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
def reverseBetween(self , head , m , n ):
if m==n:return head
#题目中虽然限制了m和n的条件,节约了我们的代码,但是存在m==n的情况
tmp = ListNode(None)
tmp2 = head
tmp.next = tmp2
for i in range(m-1):#找到第n个位置
tmp = tmp.next
tmp2 = tmp2.next
for i in range(n-m):#逆转m to n的链表
tmp3 = tmp2.next
tmp2.next = tmp3.next
tmp3.next = tmp.next
tmp.next = tmp3
if m==1:return tmp.next #没有这个条件会卡在30%
else :return head还有一个方法我觉的很好用,
- 写一个reverse(),逆序链表
- 可以将链表分为三段,将需要逆序的链表传过去
- 组合返回

京公网安备 11010502036488号