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

炫酷的html5网站网站建设 服务内容

炫酷的html5网站,网站建设 服务内容,北京app网站开发,深圳建网站哪个公司好链表OJ题: 环形链表: 使用快慢指针的方法:当慢指针和快指针相遇的时候证明链表是有环的。 证明:假设环的长度为C,入环前的长度为L。 假设fast在环内走了n圈。 当slow抵达第一个入环的节点时,fast和slow的…

链表OJ题:

环形链表:

使用快慢指针的方法:当慢指针和快指针相遇的时候证明链表是有环的。

证明:假设环的长度为C,入环前的长度为L。

假设fast在环内走了n圈。

当slow抵达第一个入环的节点时,fast和slow的距离为2L-n*c-L = L-n*C。

由于fast每次走两步,slow每次走一步,所以fast和slow之间的距离每次缩小一个单位。

当slow距离第一个入环的节点的距离为(n+1)*C-L时,fast和slow会相遇。

环形链表2:

当fast指针和slow指针相遇时

假设相遇位置为meet,相遇位置和入环节点的距离为L-n*C,如果meet要走L距离的话,那么就要走L-n*C(这是距离入环节点的距离) + n*C(这是绕环走一圈)= L。也就是说,当meet走L距离,肯定会停在入环节点处

所以我们可以定义一个cur指针,从头开始走,当cur指针和meet指针相遇的时候,也就是meet走了L距离的时候,也就是停在了入环节点的位置。

我们可以进一步假设:

前面的快慢指针方法是快指针走一步而慢指针走两步,那么要是快指针走三步而慢指针走一步呢?快慢指针判断是否有环还有效吗?

如果是fast走三步而slow走两步,第一个入环节点到fast的距离为(3L-L-n*C)也就是2L-n*C,fast到第一个入环节点的距离为(n+1)*C-2L。

而fast和slow的距离每次都会缩小两格,所以当(n+1)*C-2L 的值为偶数的时候,fast和slow可以直接相遇,而当(n+1)*C-2L为奇数的时候,fast和slow不会直接相遇,而是错过一格。

那时fast和slow的距离就变成了C-1.

如果C-1还是奇数的话,那下次fast和slow的距离也依旧是C-1。

但是这种可能存在吗?

当C-1是奇数时,说明C是偶数,前面说假设(n+1)*C-2L为奇数,当C是偶数时,(n+1)*C - 2L就不可能是奇数。

也就是说,要么(n+1)*C-2L为奇数,而C不为偶数,还是会相遇。

要么(n+1)*C-2L为偶数,直接相遇。

所以fast走三步slow走一步的这种设计,同样可以通过相遇来判断是否是带环链表。

环形链表:

 typedef struct ListNode ListNode;
bool hasCycle(struct ListNode *head) {ListNode* fast = head;ListNode* slow = head;while(fast != NULL && fast->next != NULL){fast = fast->next->next;slow = slow->next;if(fast == slow){return true;}}return false;
}

环形链表2:

typedef struct ListNode ListNode;ListNode* hascycle(ListNode* head){ListNode* fast = head;ListNode* slow = head;while(fast != NULL && fast->next != NULL){fast = fast->next->next;slow = slow->next;if(fast == slow)return fast;}return NULL;}
struct ListNode *detectCycle(struct ListNode *head) {ListNode* meet = hascycle(head);if(meet == NULL){return NULL;}ListNode * cur = head;while(cur != meet){cur = cur->next;meet = meet->next;}return cur;
}


文章转载自:

http://UFDb1Hjd.ndxmn.cn
http://4INnmqSO.ndxmn.cn
http://Ahsy5aTx.ndxmn.cn
http://rVvSd2Oo.ndxmn.cn
http://Nm7MPBYd.ndxmn.cn
http://E2O8OspH.ndxmn.cn
http://gMUKvqGp.ndxmn.cn
http://XHzAYLee.ndxmn.cn
http://g1ajZRCX.ndxmn.cn
http://L7rXk3KU.ndxmn.cn
http://TDfk1ToG.ndxmn.cn
http://K2ACkkyn.ndxmn.cn
http://3VmLGEJ1.ndxmn.cn
http://k1u44mEt.ndxmn.cn
http://1W7z6DOG.ndxmn.cn
http://5s8NXq7Q.ndxmn.cn
http://kWSTWUMh.ndxmn.cn
http://4e0tGxiK.ndxmn.cn
http://seY5XpBl.ndxmn.cn
http://aXTrhqIw.ndxmn.cn
http://t0DYqgMP.ndxmn.cn
http://SYmtrNwC.ndxmn.cn
http://A8ApH9d4.ndxmn.cn
http://cpXWgq4g.ndxmn.cn
http://YzoOy9HT.ndxmn.cn
http://CKwF8e1U.ndxmn.cn
http://jF4mxUJc.ndxmn.cn
http://aHCOJZJ4.ndxmn.cn
http://LUD3j7Gs.ndxmn.cn
http://5CpzXSEK.ndxmn.cn
http://www.dtcms.com/wzjs/707057.html

相关文章:

  • 在线网站开发西安市建设网
  • 沈阳做网站的设计公司wordpress添加贴吧表情
  • 网站首页设计怎么写wordpress如何看访问量
  • 网站项目需求表做那个男女的视频网站
  • 深圳 骏域网站建设html网站分页怎么做
  • 专门做美食的视频网站wordpress分类默认模板
  • 杭州网站设计公司推荐wordpress页面能用js吗
  • 北京互联网建站网站江苏省建设工程质量监督网站
  • 没有服务器建网站网站资料如何做参考文献
  • 深圳p2p网站开发网页海报设计教程
  • 几分钟做网站网站后台密码怎么修改
  • 青岛网站建设策划广东深圳龙岗区邮政编码
  • 网站空间哪家做的好湛江网站建设的软件
  • 最优的手机网站建设263邮箱个人登录口
  • 网站空间的存放种类网络广告例子
  • 大连网页设计哪家好西安优化外包
  • 做公众号和网站一样吗联享品牌网站建设
  • 网站开发语言是什么 东西淄博做网站推广哪家好
  • 电子商务网站业务流程网站怎么做是满屏
  • 宁波奉化建设局网站windows 上wordpress
  • 网站制作替我们购买域名网站权重如何合理分配
  • 创建网站流程图如何建立本站站点
  • 企业网站开发背景则么写wordpress 目录样式
  • 低成本门户网站开发厦门网站建设114
  • 下城网站建设免费网络推广
  • 建立网站的公司富海人才招聘网官网
  • 临邑建设局官方网站一起买买买网站建设
  • 酒泉网站建设有限公司网站建设部门宣言
  • 优秀网站建设设计asp学校网站源码
  • 网站建设需要找工信部吗wordpress 在线pdf