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

北京建筑工程公司中山网站的优化

北京建筑工程公司,中山网站的优化,表白时刻网站,昌网站建设环形链表 问题描述 给你一个链表的头节点 head #xff0c;判断链表中是否有环。如果链表中有某个节点#xff0c;可以通过连续跟踪 next 指针再次到达#xff0c;则链表中存在环。 为了表示给定链表中的环#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中…环形链表 问题描述 给你一个链表的头节点 head 判断链表中是否有环。如果链表中有某个节点可以通过连续跟踪 next 指针再次到达则链表中存在环。 为了表示给定链表中的环评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置索引从 0 开始。注意pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。如果链表中存在环 则返回 true 。 否则返回 false 。详见leetcode141 问题分析 最直接的方式就是利用集合来判断遍历链表节点判断该节点是否存在于集合中如果存在则说明链表中存在环如不存在继续遍历如果遍历结束后仍未发现当前遍历节点存在于集合中则链表中不存在环。 上面提到的方式简单直接但是在面试中一般不允许使用has或者集合的方式。除此之外我们可以考虑双指针如果链表中存在环则快慢指针一定会相遇我们假设fast指针每次走两步slow指针每次走一步当fast指针即将追上slow指针时存在两种情况fast指针与slow指针相差两步或者相差一步当相差一步时下一次fast指针走两步slow指针走一步相遇当相差两步时下一次slow指针走一步,fast指针走两步,变成相差一步的情况综上只要链表中存在环slow指针和fast指针一定会相遇。 代码实现 使用集合实现 public boolean hasCycle(ListNode head) {ListNode current head;SetListNode set new HashSet();while(current!null){if(set.contains(current)){return true;}else{set.add(current);}current current.next;}return false; }使用双指针实现 public boolean hasCycle(ListNode head) {ListNode fast head;ListNode slow head;while(fast!nullfast.next!null){fast fast.next.next;slow slow.next;if(fastslow){return true;}}return false; }环形链表 II 问题描述 给定一个链表的头节点 head 返回链表开始入环的第一个节点。 如果链表无环则返回 null。如果链表中有某个节点可以通过连续跟踪 next 指针再次到达则链表中存在环。 为了表示给定链表中的环评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置索引从 0 开始。如果 pos 是 -1则在该链表中没有环。注意pos 不作为参数进行传递仅仅是为了标识链表的实际情况。不允许修改 链表。详见leetcode142 问题分析 找环的入口比较复杂可以结合下图进行理解。假设链表中存在环非环长度为a,环长度为b,则使用快慢指针一定会相遇。我们分析相遇时的情况。fast指针式slow指针速度的两倍则f2s,fast比slow指针多走了n个环的长度fsnb,联立方程得f2nb,snb,当s走到环的入口时,s anb我们想要找到环的入口,只需要让slow指针在走a步如何确定a的值呢我们仍然使用双指针来实现。让fast指针指向head每次走一步slow与fast同步走两者在一起走a步在环入口相遇 代码实现 public ListNode detectCycle(ListNode head) {ListNode slow head;ListNode fast head;while(fast!nullfast.next!null){fastfast.next.next;slow slow.next;if(fastslow){break;}}if(fastnull||fast.nextnull){return null;}fast head;while(fast!slow){fast fast.next;slow slow.next;}return slow; }总结 链表没有下标所以只能靠指针遍历的方式操作元素但是一个指针在链表有环的前提下无法确定终止条件所以我们使用双指针来解决链表环的问题常见环的问题就是判断是否有环和找到环的入口上面的思路可能比较复杂可以结合图示来理解。
http://www.huolong8.cn/news/187564/

相关文章:

  • 如何做网站策划上海做网站推广关键词
  • dw做的网站如何让别人看看wordpress吗
  • wordpress调用网站域名品牌网站设计视频教程
  • 巴南集团网站建设网络推广平台公司
  • 网站安全检测怎么关掉超低价的锦州网站建设
  • 网站建设好的公司没有icp备案的网站
  • php做手机网站wordpress用户推广
  • vue如何网站开发《网站开发技术》模板
  • 服装企业网站建设可行性分析一个网站不兼容ie怎么做
  • 网站缩写的英文网站怎么做文本跳出来
  • 网站推广联盟网站建设 检查 通报
  • 大鹏网站建设公司业之峰装饰公司口碑
  • 暂时没有域名怎么做网站贵阳企业免费建站
  • 做个简单的企业小网站中国企业500强营业收入
  • 网站备案名称重复欧派整装大家居装修公司加盟
  • 如何网上建设网站seo短视频网页入口引流在线观看网站
  • 网站建设基本模板介绍竞价广告点击软件
  • 软文网站推广法没有建网站怎样做网销
  • 如何做原创小说网站如何建开发手机网站首页
  • 网站建设经验大总结app界面设计模板一套
  • 郑州作网站附近男科医院在哪里
  • 投融网站建设方案企业网站建设jz190
  • 网站建设新的技术电商网站建设精准扶贫的目的
  • 廊坊商昊网站建设深圳建设网站公司哪儿济南兴田德润有活动吗
  • 贵州省房屋和城市建设厅官方网站建设部职称证书查询官方网站
  • 威海网站建设哪家好中国营销型网站
  • 做技术网站赚钱市场营销培训课程
  • 国外网站404错误页哪个网站做任务给东西
  • 做cms网站步骤制作网站电话
  • 哈尔滨住房和城乡建设局网站自治区建设厅官方网站