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

怎么做网站 白免费职业技能培训网站

怎么做网站 白,免费职业技能培训网站,wordpress 整站下载,珠海做网站及推广链表中环的入口节点 描述 链表中环的入口节点 给一个长度为n链表&#xff0c;若其中包含环&#xff0c;请找出该链表的环的入口结点&#xff0c;否则&#xff0c;返回null。 数据范围&#xff1a; n≤10000&#xff0c; 1<结点值<10000 要求&#xff1a;空间复杂度 O(1)…

链表中环的入口节点

描述

链表中环的入口节点
给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。

数据范围: n≤10000, 1<=结点值<=10000
要求:空间复杂度 O(1),时间复杂度 O(n)

解法一

解法一:有环的链表,在遍历时会在环中一直循环,想要获得环的入口结点,
直观地想,可以使用hash法保存出现的结点,当重复环的遍历过程时,第一次碰到重复的结点即为环入口结点B。

解法二

解法二:通过定义slow和fast指针,slow每走一步,fast走两步,若是有环,则一定会在环的某个结点处相遇(slow == fast),
根据下图分析计算,C为fast和slow指针第一次相遇的点。可知从C到B与从A到B以相同速度走第一次相遇的节点一定为B,即为入口点。解法二的实现,如下。
在这里插入图片描述

代码实现

public class Node<V> {public Node<V> pre;public Node<V> next;private V v;public Node(V v) {this.v = v;}public V getV() {return v;}public void setV(V v) {this.v = v;}
}
public static Node<Integer> entryNodeOfLoop(Node<Integer> head) {if (head == null || head.next == null){return null;}Node<Integer> fast = head;Node<Integer> slow = head;while (fast !=null && fast.next !=null){fast = fast.next.next;slow = slow.next;if (slow == fast){break;}}// 若是快指针指向null,则不存在环if(fast == null || fast.next == null)return null;// 重新指向链表头部fast = head;while (fast !=slow){fast = fast.next;slow = slow.next;}return fast;
}

从C到B与从A到B以相同速度走第一次相遇的节点一定为B?

在这里插入图片描述
我们用数学的方式证明一下。

如果结论:A到B走和C到B顺时针相同速度走,第一次相遇的点一定为B点。成立
那么数学表达式有 X = n(Y+Z)+Z  n>=0,n为环的圈数;的结论成立为证明A到B走和C到B顺时针相同速度走,第一次相遇的点一定为B点
即证明:X = n(Y+Z)+Z  n>=0;n为环的圈数由第一次相遇在C点得:2(X+Y) = X + w(Y+Z) + Y;(w>=1,w为环的圈数)
推导:==>  2(X+Y) = X + w(Y+Z) + Y + Z + Y;(w>=0,w为环的圈数)==>  2(X+Y) = X + w(Y+Z) + 2Y + Z;(w>=0,w为环的圈数)==>          X  = w(Y+Z) +Z ;(w>=0,w为环的圈数)所以:X = n(Y+Z)+Z  n>=0;n为环的圈数。成立即:A到B走和C到B顺时针相同速度走,第一次相遇的点一定为B点。
http://www.dt0577.cn/news/18030.html

相关文章:

  • 国内知名b2b网站全国疫情高峰感染进度
  • 建设企业网站公司机构官网sem 优化价格
  • 在搜狐快站上做网站怎么跳转成都seo培训
  • 网站建设实力河北seo推广方案
  • 郑州做网站齿轮安卓优化大师新版
  • 建设公司内网网站的意义百度入驻
  • 哪种网站语言最好深圳高端网站制作公司
  • 南昌做网站需要多少钱sem运营是什么意思
  • 兰州网站seo收费湖南企业seo优化
  • 玉溪网站设计上海百度推广
  • 帮人管理网站做淘宝客广告联盟大全
  • 做自动采集电影网站有什么处罚搜什么关键词比较刺激
  • 我要在58上面做网站网络服务公司经营范围
  • 凡科网做网站好吗谷歌浏览器官网入口
  • 网站关键词密度是怎么计算的网站运营策划书
  • 开业时网站可以做哪些活动如何进行搜索引擎优化?
  • 医院网站建设百度关键词排名神器
  • 最大的开源网站百度打广告多少钱一个月
  • 男女做暖暖视频免费网站腾讯企点
  • 网站后台密码存在哪新网站百度收录要几天
  • 怎么做网站文章优化学seo需要学什么专业
  • 福州h5建站互动营销用在哪些推广上面
  • 北京建网站公司推荐好看的web网页
  • 深圳电商网站打开百度一下搜索
  • 松江洞泾网站建设永久免费linux服务器
  • 凡科手机网站建设国内外搜索引擎大全
  • 最新网站推广哪家好产品宣传推广方式有哪些
  • 开源企业网站查权重的软件
  • 单页网站微信朋友圈推广软文
  • 网站建设 by 筑巢seo排名软件怎么做