当前位置: 首页 > news >正文

小黑享受思考心流躲避迷茫:92. 反转链表 II

小黑代码1:两次遍历

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def reverseBetween(self, head: Optional[ListNode], left: int, right: int) -> Optional[ListNode]:if left==right:return head# 设置辅助头结点temp = ListNode(next=head)# 当前指针cur = temp# 计数器t = 0# 先定位left的前驱结点和right结点left_pre_node = tempright_node = headwhile cur:cur = cur.nextt += 1if t == left-1:left_pre_node = curelif t == right:right_node = curbreak# 开始逆转left_node = left_pre_node.nextpre = left_nodecur = left_node.nextaft = cur.next# 记录片段最后的结点right_aft_node = right_node.next# 逆转链表while cur!=right_aft_node:cur.next = prepre = curcur = aftif not aft:breakaft = aft.next# 处理首尾问题left_node.next = right_aft_nodeleft_pre_node.next = right_nodereturn temp.next    

在这里插入图片描述

小黑尝试穿针引线法

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def reverseBetween(self, head: Optional[ListNode], left: int, right: int) -> Optional[ListNode]:if left==right:return head# 辅助头结点temp = ListNode(next=head)# 找到片段左边结点的前驱结点pre = tempt = 0while t<left-1:pre = pre.nextt += 1start_node = pre.nextt += 2cur = start_node.next# 开始逆转片段while t <= right:aft = cur.nexttemp2 = pre.nextpre.next = curcur.next = temp2start_node.next = aftcur = aftt += 1return temp.next

在这里插入图片描述

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def reverseBetween(self, head: Optional[ListNode], left: int, right: int) -> Optional[ListNode]:if left==right:return head# 辅助头结点temp = ListNode(next=head)# 找到片段左边结点的前驱结点pre = tempt = 0while t<left-1:pre = pre.nextt += 1start_node = pre.nextt += 2# 开始逆转片段while t <= right:aft = start_node.nextstart_node.next = aft.nextaft.next = pre.nextpre.next = aftt += 1return temp.next

在这里插入图片描述
在这里插入图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

http://www.xdnf.cn/news/1008793.html

相关文章:

  • 2025年度重点专项项目申报指南的通知公布!
  • ADC(模数转换)
  • 【大模型应用开发】基于langchain的大模型调用及简单RAG应用构建
  • 使用argocd部署nginx
  • 蓝牙协议LMP(Link Manager Protocol)
  • 试验台铁地板:革新工业领域的里程碑
  • java 高并发设计
  • Vue3 + TypeScript + Element Plus 通过 try...catch 捕获不到异常的案例分析
  • P4 QT项目----会学串口助手(解析笔记)
  • 航电系统之数据通信技术篇
  • 管理员端用户操作手册
  • C# 支持 ToolTip 功能的控件,鼠标悬停弹提示框
  • 【加密+解密】2022-5-18
  • matlab设计滤波器及导出系数python调用
  • 注册bean和自动配置的原理、过程
  • Vue首屏加载速度优化方案
  • ssh连接踢出脚本
  • RX Byte and Word Alignment Attributes
  • 我的世界进阶模组开发教程——开发机械动力附属模组(2)
  • Android Jetpack 组件库 ->Jetpack Navigation
  • 第十节 高频代码题-类型推断题
  • 硬件工程师成长之路--电容
  • 在GIS 工作流中实现数据处理(3)
  • 25年春招:携程java开发一面
  • linux使用find搜索文件命令
  • VUE - AxiosError-ERR_BAD_REQUEST
  • 瓷器数字化展示文物三维扫描建模-中科米堆
  • 2025年6月英语六级作文高分模板目录(共20篇)
  • ssc377d在kernel下读写寄存器
  • 进程间通信之消息队列