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

算法修仙传 第二章 坊市奇遇:链表操作入门

第二章 坊市奇遇:链表操作入门

青云坊市西角,林玄被一阵灵力波动吸引。只见一白衣女子手持玉链表,指尖灵光流转间,节点如珠串般重组变幻。

"链表与数组不同,元素离散存储于天地间。"女子演示道:“这是单链表节点类:”

class ListNode:def __init__(self, val):self.val = val  # 节点值self.next = None  # 下一节点指针

【核心功法】

  1. 虚拟头节点(dummy node)技巧:
dummy = ListNode(0)
dummy.next = head
  1. 快慢指针寻中法:
slow = fast = head
while fast and fast.next:slow = slow.nextfast = fast.next.next
return slow
  1. 递归反转链表诀:
def reverse_list(head):if not head or not head.next:return headnew_head = reverse_list(head.next)head.next.next = headhead.next = Nonereturn new_head

实战演练

女子突然将链表抛向空中:“接住它,并找出环的入口!”
林玄需实现:

def detectCycle(head):slow = fast = headwhile fast and fast.next:slow = slow.nextfast = fast.next.nextif slow == fast:breakelse:return Nonewhile head != slow:head = head.nextslow = slow.nextreturn head

相关文章:

  • 003-类和对象(二)
  • MySQL 8.0 OCP 1Z0-908 题目解析(12)
  • 【动态规划】5 从一次函数出发推导斜率优化dp
  • 零件剖切配置教学 | 玩转EasyTwin 工业产线第三期(上)课程回顾
  • 论文解读: 2023-Lost in the Middle: How Language Models Use Long Contexts
  • javaEE课程项目-壁纸管理系统
  • ollama 部署模型休眠、释放问题
  • 从零入门:Google Cloud Platform (GCP) 基础架构与核心服务全解析
  • 【Go-4】函数
  • 基于BERT预训练模型(bert_base_chinese)训练中文文本分类任务(AI老师协助编程)
  • 基于DPABI提取nii文件模板的中心点坐标
  • 如何使用 WebStorm 编写第一个 Node.js 项目
  • C++滑动门问题(附两种方法)
  • Three.js与Babylon.js对比
  • Java—— 网络爬虫
  • 设计模式——简单工厂模式
  • CST软件基础六:视图
  • 热点│衰老过程中的表观遗传调控
  • QT-VStudio2107加载项目,报出“元素 <LanguageStandard>只有无效值“Default“”
  • Cat.4+WiFi6工业路由器介绍小体积大作用ER4200
  • 网站按钮样式/自媒体平台注册
  • 邢台做网站优化价格/中国知名网站排行榜
  • 贵阳建设网站/阿里域名注册官网
  • 企业宣传网站建设/投诉百度最有效的电话
  • wordpress网站+搬家/安卓优化大师老版本下载
  • 网站建设策划书是由谁编写的/百度搜索引擎算法