LeetCode 92.反转链表 II
题目分析
题目大概意思是反转链表的m到n的节点。
解题思路大致就是记录下m前和n之后的断点,然后反转中间的链表,再接回原链表。
代码
代码写的逻辑稍微有点乱。。。
class Solution:
def reverseBetween(self, head: ListNode, m: int, n: int) -> ListNode:
H = ListNode(0)
re = ListNode(0) # 记录反转链表
H.next = head
p = pre = H # p当前节点 pre前一个节点
i = 0
while i < m:
pre = p
p = p.next
i += 1
interupt0 = pre # m前断点
interupt1 = p # n后断点
while i < n+1:
pre = p
p = p.next
pre.next = re.next
re.next = pre
i += 1
interupt0.next = re.next
interupt1.next = p
return H.next
总结
考验链表处理功底