LeetCode142:巧解链表环入口(多解)
题目LeetCode142给定一个链表的头节点head返回链表开始入环的第一个节点。如果链表无环则返回null。如果链表中有某个节点可以通过连续跟踪next指针再次到达则链表中存在环。 为了表示给定链表中的环评测系统内部使用整数pos来表示链表尾连接到链表中的位置索引从 0 开始。如果pos是-1则在该链表中没有环。注意pos不作为参数进行传递仅仅是为了标识链表的实际情况。不允许修改链表示例 1输入head [3,2,0,-4], pos 1输出返回索引为 1 的链表节点解释链表中有一个环其尾部连接到第二个节点。Python解法1.哈希表class Solution: def detectCycle(self, head: Optional[ListNode]) - Optional[ListNode]: visited [] while head: if head in visited: return head else: visited.append(head) head head.next return None逐个遍历重复直接为所求2.快慢指针class Solution: def detectCycle(self, head: Optional[ListNode]) - Optional[ListNode]: if not head: return None slow head fast head while fast: slow slow.next if fast.next: fast fast.next.next else: return None if slow fast: ptr head while ptr ! slow: ptr ptr.next slow slow.next return ptr return None解法二的关键在于if slow fast: ptr head while ptr ! slow: ptr ptr.next slow slow.next return ptrJava解法1.哈希表public class Solution{ public ListNode detectCycle(ListNode head){ ListNode pos head; SetListNode visited new HashSetListNode(); while(pos ! null){ if(visited.contains(pos)){ return pos; }else{ visited.add(pos); } pos pos.next; } return null; } }2.快慢指针public class Solution { public ListNode detectCycle(ListNode head) { if(head null){ return null; } ListNode slow head; ListNode fast head; while(fast ! null){ slow slow.next; if(fast.next ! null){ fast fast.next.next; }else{ return null; } if(slow fast){ ListNode ptr head; while(slow ! ptr){ slow slow.next; ptr ptr.next; } return ptr; } } return null; } }C解法1.哈希表class Solution{ public: ListNode *detectCycle(ListNode *head){ ListNode *pos head; unordered_setListNode * visited; while(pos ! nullptr){ if(visited.count(pos)){ return pos; }else{ visited.insert(pos); } pos pos-next; } return nullptr; } };2.快慢指针class Solution{ public: ListNode *detectCycle(ListNode *head){ if(head nullptr){ return nullptr; } ListNode *slow head; ListNode *fast head; while(fast ! nullptr){ slow slow-next; if(fast-next ! nullptr){ fast fast-next-next; }else{ return nullptr; } if(slow fast){ ListNode *ptr head; while(slow ! ptr){ slow slow-next; ptr ptr-next; } return ptr; } } return nullptr; } };

相关新闻

导学-Vue2导学:从零开始掌握Vue2

导学-Vue2导学:从零开始掌握Vue2

Vue2导学:从零开始掌握Vue2 本系列将带你系统学习Vue2的核心知识与实战技能,从模板语法到组件通信,从路由管理到状态管理,循序渐进掌握Vue2开发。 一、前言 Vue2是前端开发领域最具影响力的框架之一。自2016年发布以来&#xff0…

2026/6/25 15:29:33阅读更多 →
从“只会点鼠标”到“爱上敲命令”:Linux基础入门 三剑客和lvm

从“只会点鼠标”到“爱上敲命令”:Linux基础入门 三剑客和lvm

一句话总结: 今天学了怎么在 Linux 里"找数据、改数据、切数据",以及怎么给系统加一块新硬盘。一、三剑客:grep、sed、awkLinux 文本处理有三把瑞士军刀,记住三个词就行:工具干的事一句话记法grep找数据在文…

2026/6/25 15:29:33阅读更多 →
FFXIV TexTools:为什么这是《最终幻想14》玩家必备的模型修改神器?

FFXIV TexTools:为什么这是《最终幻想14》玩家必备的模型修改神器?

FFXIV TexTools:为什么这是《最终幻想14》玩家必备的模型修改神器? 【免费下载链接】FFXIV_TexTools_UI 项目地址: https://gitcode.com/gh_mirrors/ff/FFXIV_TexTools_UI 你是否曾经在《最终幻想14》中看到其他玩家穿着炫酷的装备,却…

2026/6/25 15:29:33阅读更多 →
在线免费SSL证书申请工具

在线免费SSL证书申请工具

一款理想的在线免费SSL证书申请工具 我考虑以下几个核心特质: 1.完全零门槛操作(无需安装本地客户端或熟悉命令行) 2.支持多种域名验证方式(如:HTTP验证 即文件上传、DNS解析等) 3.证书格式支持各种服务器中…

2026/6/25 21:01:33阅读更多 →
5分钟掌握全平台资源下载神器:视频号、抖音、小红书一键保存终极指南

5分钟掌握全平台资源下载神器:视频号、抖音、小红书一键保存终极指南

5分钟掌握全平台资源下载神器:视频号、抖音、小红书一键保存终极指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader …

2026/6/25 21:01:33阅读更多 →
DP1302B-Q16/DP1302-Q16/DP1361-Q16三款13.56MHz非接触式读卡器芯片深度选型推荐

DP1302B-Q16/DP1302-Q16/DP1361-Q16三款13.56MHz非接触式读卡器芯片深度选型推荐

DP1302B-Q16、DP1302-Q16 和 DP1361-Q16 是一系列高集成度 13.56MHz 非接触式读卡器芯片。该系列芯片广泛应用于需要稳定、非接触识别的场景,具有极高的性价比和技术集成度。 三款芯片均支持 ISO/IEC 14443 A/B、FeliCa 等主流非接触协议,适用于读写器模…

2026/6/25 21:01:33阅读更多 →
rpm-问题场景处理

rpm-问题场景处理

一、解决软件包依赖项问题 软件包管理是安装、更新、删除和跟踪软件更新的方法。rpm软件包管理器(rpm)和yellow dog updater modified(yum)都是基于linux的软件包管理器。红帽企业linux8中使用yum v4基于dandified yum(dnf)技术。它是rhel中的主要软件包管理器,与rhel7…

2026/6/25 21:01:33阅读更多 →
前端开发基本面试-html(一)

前端开发基本面试-html(一)

1.DOCTYPE告诉浏览器当前 HTML 文档遵循哪个版本的 HTML 规范&#xff0c;让浏览器按对应标准解析页面&#xff0c;避免进入"怪异模式"。写法&#xff1a;<!DOCTYPE html>2.HTML 文档的基本结构<!DOCTYPE html> <html lang"zh-CN"> <…

2026/6/25 21:01:32阅读更多 →
CentOS 7 上升级 GCC版本

CentOS 7 上升级 GCC版本

由于软件的迭代更新&#xff0c;需要在在 CentOS 7 上安装 安装高版本 GCC&#xff0c;由于 devtoolset-6 官方源已被废弃&#xff0c;最可靠的方法是使用源码编译安装。 此方法也可在无互联网环境中进行离线部署 下面是两种方法的详细步骤。 ⚙️ 方法一&#xff1a;使用已被废…

2026/6/25 20:56:32阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM&#xff0c;WorkFlow&#xff0c;Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1&#xff09;LLM2&#xff09;Prompt3&#xff09;Me…

2026/6/25 9:39:54阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件&#xff1a;从原理到实战的深度解析在嵌入式系统开发中&#xff0c;图形用户界面&#xff08;GUI&#xff09;的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台&#xff0c;嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/25 2:52:24阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”&#xff0c;而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时&#xff0c;第一反应可能是&#xff1a;又一个免费额度&#xff1f;领完就完事&#xff1f;我亲手试过——这300美金根本不是红包&#xff0c;而是一张入场券&…

2026/6/25 9:01:34阅读更多 →
面试辅助工具横评:我试了5款AI面试工具,最后留下了OfferGo

面试辅助工具横评:我试了5款AI面试工具,最后留下了OfferGo

上半年跳槽&#xff0c;面了十几家公司。说句实话&#xff0c;不是能力不行&#xff0c;是面试现场太容易崩了。 明明准备了一周&#xff0c;面试官换个问法脑子就一片白。面完之后那个懊悔——其实我会的。 后来开始试市面上的AI面试辅助工具。前前后后装了5款&#xff0c;踩…

2026/6/25 11:52:11阅读更多 →
Claude Code 提示词设计:从塑造“人格”到建立“状态机”

Claude Code 提示词设计:从塑造“人格”到建立“状态机”

当前 AI Agent 设计的核心痛点在于&#xff1a;大模型不缺写代码的能力&#xff0c;缺的是克制力、边界感和验证逻辑。Prompt 不再是用来塑造“人格”的&#xff0c;而是用来建立“状态机&#xff08;State Machine&#xff09;”和“行为门禁&#xff08;Guardrails&#xff0…

2026/6/25 11:52:11阅读更多 →
MC-037 | 自定义 Skill 开发:创建你的AI能力模块

MC-037 | 自定义 Skill 开发:创建你的AI能力模块

MONKEYCODE 教程系列 MonkeyCode教程及推广系列 MC-037 自定义 Skill 开发&#xff1a;创建你的AI能力模块 >官网链接注册更放心哦https://monkeycode-ai.com/?ic019e0aed-c823-783c-b08a-4f030f891e4e 系列: 不爱土豆唯爱马铃薯 MonkeyCode 教程系列 字数: 约 1400 字…

2026/6/25 11:52:11阅读更多 →