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

asp学习网站西安seo服务

asp学习网站,西安seo服务,在网站如何做在ps软件做界面,crm客户管理系统模板LeetCode 热题100 | 141. 环形链表 大家好,今天我们来解决一道经典的算法题——环形链表。这道题在 LeetCode 上被标记为简单难度,要求我们判断一个链表中是否存在环。下面我将详细讲解解题思路,并附上 Python 代码实现。 题目描述 给定一个…

LeetCode 热题100 | 141. 环形链表

大家好,今天我们来解决一道经典的算法题——环形链表。这道题在 LeetCode 上被标记为简单难度,要求我们判断一个链表中是否存在环。下面我将详细讲解解题思路,并附上 Python 代码实现。


题目描述

给定一个链表的头节点 head,判断链表中是否有环。如果链表中有某个节点可以通过连续跟踪 next 指针再次到达,则链表中存在环。返回 true 表示链表中有环,否则返回 false

示例:

输入:head = [3,2,0,-4], pos = 1
输出:true
解释:链表中有一个环,其尾部连接到第二个节点。

解题思路

判断链表是否有环,常用的方法是 快慢指针法(Floyd 判圈算法)。快慢指针法的核心思想是使用两个指针,一个快指针和一个慢指针,快指针每次走两步,慢指针每次走一步。如果链表中有环,快指针最终会追上慢指针;如果没有环,快指针会到达链表末尾。

核心思想
  1. 快慢指针
    • 初始化两个指针 slowfast,都指向链表的头节点 head
    • slow 每次移动一步,fast 每次移动两步。
    • 如果 fastfast.nextNone,说明链表没有环。
    • 如果 slowfast 相遇,说明链表有环。

代码实现

class ListNode:def __init__(self, val=0, next=None):self.val = valself.next = nextdef hasCycle(head):""":type head: ListNode:rtype: bool"""if not head or not head.next:return Falseslow = head  # 慢指针fast = head  # 快指针while fast and fast.next:slow = slow.next  # 慢指针走一步fast = fast.next.next  # 快指针走两步if slow == fast:  # 如果相遇,说明有环return Truereturn False  # 如果没有相遇,说明无环

代码解析

  1. 初始化

    • 如果链表为空或只有一个节点,直接返回 False,因为不可能有环。
    • 初始化两个指针 slowfast,都指向链表的头节点 head
  2. 遍历链表

    • 使用 while 循环遍历链表,直到 fastfast.nextNone
    • slow 每次移动一步,fast 每次移动两步。
    • 如果 slowfast 相遇,说明链表有环,返回 True
  3. 返回结果

    • 如果遍历结束后没有相遇,说明链表无环,返回 False

复杂度分析

  • 时间复杂度:O(n),其中 n 是链表的节点数。快指针最多遍历链表两次。
  • 空间复杂度:O(1),只使用了常数个额外空间。

示例运行

示例 1
# 创建链表 [3,2,0,-4],并形成环
head = ListNode(3)
head.next = ListNode(2)
head.next.next = ListNode(0)
head.next.next.next = ListNode(-4)
head.next.next.next.next = head.next  # 形成环# 判断链表是否有环
print(hasCycle(head))  # 输出: True
示例 2
# 创建链表 [1,2],并形成环
head = ListNode(1)
head.next = ListNode(2)
head.next.next = head  # 形成环# 判断链表是否有环
print(hasCycle(head))  # 输出: True
示例 3
# 创建链表 [1],无环
head = ListNode(1)# 判断链表是否有环
print(hasCycle(head))  # 输出: False

总结

通过快慢指针法,我们可以高效地判断链表是否有环。这种方法的时间复杂度为 O(n),空间复杂度为 O(1),能够处理较大的输入规模。希望这篇题解对你有帮助!如果还有其他问题,欢迎继续提问!

关注我,获取更多算法题解和编程技巧!

http://www.khdw.cn/news/52768.html

相关文章:

  • 网站备案被拒绝搜索引擎优化seo是什么
  • 毕业设计网站代做多少钱seo排名赚挂机赚钱软件下载
  • 建立搜索引擎网站别人恶意点击我们竞价网站
  • 上海营销型网站建设方案seo模拟点击软件源码
  • 长沙做网站建设公司哪家好百度一下 你就知道首页
  • 一站式网站建设行业百度搜索引擎属于什么引擎
  • 柳江区城乡住房建设局网站网络推广外包哪家好
  • 融资网站建设方案优化大师平台
  • 中国建设网上银行个人登录百度运营优化师
  • 新的网站平台如何做地推广告开户
  • 电商网站建设教案百度浏览器官网入口
  • 公司做网站流程流程杭州网站优化流程
  • 国外网站需要备案吗网络培训总结
  • 图形设计网站网站建设优化400报价
  • 广州做外贸网站的公司简介seo中文含义是什么
  • 哪有可以专门做外包项目的网站网络公司有哪些
  • 网站建设深圳哪里学知乎关键词排名工具
  • 正规的镇江网站建设免费的html网站
  • 网站你懂我意思正能量免费下载怎么弄一个网站平台
  • 网站彩票网站开发搜索引擎优化课程
  • 成都软件开发公司排行榜seo关键词快速排名前三位
  • 网站图标怎么上传itme收录优美图片官网
  • wordpress图片介绍深圳专业seo外包
  • 网页设计怎么做网站企业网站的作用
  • 电子商务及网站建设建立网站费用大概需要多少钱
  • 专业网站建设哪家效果好多地优化完善疫情防控措施
  • 景县做个油管的网站怎么做软件推广平台有哪些
  • 网站动画用什么程序做搜索量排名
  • 集团网站建设定制网站建设百度打广告收费表
  • 公司网站管理必应bing搜索引擎