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

企业网站的作用/如何弄一个自己的网站

企业网站的作用,如何弄一个自己的网站,开利网络企业网站建设第一品牌,长沙疫情最新情况今天在前面的文章里已经讲解过如何判断一个单链表中是否存在环,那么今天就是进阶版的题目,题目链接如下:Loading...​leetcode.com虽说是进阶版,但是题目的解题思路基本上跟之前没有太大的区别,唯一不同的是这个题除了要判…

86550d4886e4157175dc48ad7afc698f.png

在前面的文章里已经讲解过如何判断一个单链表中是否存在环,那么今天就是进阶版的题目,题目链接如下:

Loading...​leetcode.com
d427ca537b9a426af27bd3db2f0e32d2.png

虽说是进阶版,但是题目的解题思路基本上跟之前没有太大的区别,唯一不同的是这个题除了要判断有没有环之外,还要返回环最先开始的那个节点,所以参考上一题的思路,第一个最容易想到的方法就是借用一个set来记录已经遍历过的节点,如下:

class Solution(object):def detectCycle(self, head):s = set()while head:if head in s:  # 每当遍历一个新节点时,看看当前节点是否之前已经遍历过return headelse:s.add(head)head = head.nextreturn None

上面这个解题思路已经基本可以满足要求了,但是前面也提到需要用到额外O(n)的存储空间,所以在上一篇文章中提出了一快一慢两个指针,利用龟兔赛跑的方式来判断链表是否有环,但是这里还要找到并返回环开始的那个节点,So 我们在这里停一停,分析一下两个指针相遇时是什么状况:

df763579284c1b1b70cbc23962bb6a18.png
两个指针相遇时

此时fast指针比slow指针多走了一个环的距离,slow指针走的路径是3->2->0->-4,而fast指针走的路径是3->2->0->-4->1->0->-4,我们很容易知道fast走的路径长度是slow指针路径长度的2倍,那么3->2->0->-4->1->0->-4(注意我这里说的是走过的路径,并不是fast指针遍历的节点,实际fast指针遍历的节点是:3->0->1->-4)中前面加粗的路径是跟slow指针是一样的,又因为2倍长度的关系,那么意味着3->2->0->-4和-4->1->0->-4这两段路径的长度是一模一样的,而且0->-4这段路径是公共的,所以从3->2->0和-4->1->0的长度也是一样

当头指针从3遍历到0的时候,此时让fast指针挨个节点遍历,也会刚好在0这个节点和头指针相遇,至此我们就找到环开始的节点了。代码如下:

class Solution(object):def detectCycle(self, head):slow, fast, flag = head, head, Falsewhile fast and fast.next and fast.next.next:slow = slow.nextfast = fast.next.nextif slow is fast:   # 当两个指针相遇时,停止遍历flag = Truebreakif not flag: # 如果没有环return Noneelse:slow = head  while slow != fast:slow = slow.next  # 让slow指针从head开始挨个遍历fast = fast.next  # 让fast指针从相遇的那个节点开始挨个遍历return slow

分析一下下是不是很简单呢!

http://www.jmfq.cn/news/5068495.html

相关文章:

  • 青岛建设银行股份有限公司网站/百度seo工作室
  • 博物馆网站建设公司/郑州seo排名扣费
  • 胶南做网站/找客户的软件有哪些
  • 珠海响应式网站建设/网络营销推广活动有哪些
  • 香港主机做福彩网站/销售管理
  • 做网站网页的人是不是思维/竹子建站官网
  • 做网站公司多少钱/有没有购买链接
  • 网站后台图片滚动效果怎么做/网站建设制作过程
  • 做网站要营业执照吗/竞价托管公司
  • 织梦手机网站怎么安装/百度统计代码安装位置
  • 新闻网站建设意义/seo网站排名优化价格
  • 网站出现的问题/百度seo指南
  • 网站移动端seo/交换链接的例子
  • 杭州个人做网站/百度推广公司哪家比较靠谱
  • 潜江市网站/东莞推广公司
  • 为什么要建设医院网站/百度手机助手下载2021新版
  • 如何在百度上找网站/云南百度推广开户
  • java做网站6/谷歌的推广是怎么样的推广
  • 老李网站建设/百度指数功能模块
  • 做英语四级题的网站/公众号微博seo
  • 培训网站网站建设/app拉新推广平台渠道
  • 东圃手机网站建设电话/安年软文网
  • 如何生成网站的二维码/百度官方推广
  • 做搜狗手机网站优化点/怎么优化网站关键词排名
  • 找人做网站会给源代码吗/百度推广客服
  • 做网站建设的电销/魔贝课凡seo课程好吗
  • 巴州移动网站建设/石家庄seo网站排名
  • 哪些网站容易收录/360网站推广费用
  • server2008 iis 网站/软文发布
  • 旅游电子商务网站的建设方案/深圳网络推广方法