资讯动态

leetcode 92. 反转链表 II 区间反转(不是整条链表反转)

发布时间:2026/9/28 9:41:13 来源:尧图企业网站定制
找到区间的pre、left、right、nxt保存区间反转pre.next 连接新头right区间尾巴原来的left接上nxt# Definition for singly-linked list.# class ListNode:# def __init__(self, val0, nextNone):# self.val val# self.next nextclassSolution:defreverseBetween(self,head:Optional[ListNode],left:int,right:int)-Optional[ListNode]:# 1. 找区间的pre、next 节点preListNode(0)pre.nexthead dummypreforiinrange(left-1):prepre.next# 此时pre.next 区间头节点left_nodepre.nextright_nodeheadforiinrange(right-1):right_noderight_node.next# 2. 反转区间curleft_node# 断首尾prevListNode(0)prev.nextleft_node# 给个暂时的节点指向区间leftnxtright_node.next# 保存原始区间nextwhilecur!nxt:# 结束时cur已经出区间了这样区间内才反转完tmpcur.next# 保存原始区间nextcur.nextprev prevcur curtmp pre.nextright_node# 原来的区间pre_node 指向原来的尾节点现在的leftleft_node.nextnxt# 现在的尾节点原来的left指向保存好的nxtreturndummy.next

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑