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

打不开建设银行网站logo模板

打不开建设银行网站,logo模板,苏州网站建设公司排名,seo搜索引擎推广题目链接 Leetcode.剑指 Offer II 022 链表中环的入口节点 mid 题目描述 给定一个链表,返回链表开始入环的第一个节点。 从链表的头节点开始沿着 next指针进入环的第一个节点为环的入口节点。如果链表无环,则返回 null。 为了表示给定链表中的环&#…

题目链接

Leetcode.剑指 Offer II 022 链表中环的入口节点 mid

题目描述

给定一个链表,返回链表开始入环的第一个节点。 从链表的头节点开始沿着 next指针进入环的第一个节点为环的入口节点。如果链表无环,则返回 null

为了表示给定链表中的环,我们使用整数 pos来表示链表尾连接到链表中的位置(索引从 0开始)。 如果 pos-1,则在该链表中没有环。注意,pos仅仅是用于标识环的情况,并不会作为参数传递到函数中。

说明:不允许修改给定的链表。

示例 1:

在这里插入图片描述

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

示例 2:

在这里插入图片描述

输入:head = [1,2], pos = 0
输出:返回索引为 0 的链表节点
解释:链表中有一个环,其尾部连接到第一个节点。

示例 3:

在这里插入图片描述

输入:head = [1], pos = -1
输出:返回 null
解释:链表中没有环。

提示:

  • 链表中节点的数目范围在范围 [0,1040, 10^40,104] 内
  • −105<=Node.val<=105-10^5 <= Node.val <= 10^5105<=Node.val<=105
  • pos的值为 -1或者链表中的一个有效索引

分析:快慢指针

我们用两个指针 fastslow,初始都指向 headfast每次走两步,slow每次走一步。

如果链表存在环,那么 fastslow一定会在环中相遇。

在这里插入图片描述

因为fastslow要快1步,所以当 slow走过的距离为 x + y到达相遇点时,fast其实已经在环里转了若干圈了(这里假设是 n圈)。

所以 fast走过的路程为 ,x+n∗(y+z)+yx + n * (y + z) + yx+n(y+z)+y

又因为 fast走过的路程 应该是 两倍slow走过的路程,即 x+n∗(y+z)+y=2∗(x+y)x + n * (y + z) + y = 2 * (x + y)x+n(y+z)+y=2(x+y)

化简得 : x=(n−1)∗(y+z)+zx = (n - 1) * (y + z) + zx=(n1)(y+z)+z,即从相遇点走 z的路程,再走若干圈,就是 x的路程。(我们只需要走 0 圈即可),即 x=zx = zx=z

fastslow相遇时,让 fast重新指向头节点 headfastslow同时移动,当他们再次相遇时的点,就是环的起点。

时间复杂度: O(n)O(n)O(n)

C++代码:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *detectCycle(ListNode *head) {if(head == nullptr) return nullptr;ListNode *fast = head , *slow = head;while(fast && fast->next){slow = slow->next;fast = fast->next->next;//两者相遇if(slow == fast){fast = head;while(slow != fast){slow = slow->next;fast = fast->next;}return slow;}}return nullptr;}
};

Java代码:

/*** Definition for singly-linked list.* class ListNode {*     int val;*     ListNode next;*     ListNode(int x) {*         val = x;*         next = null;*     }* }*/
public class Solution {public ListNode detectCycle(ListNode head) {if(head == null) return null;ListNode fast = head;ListNode slow = head;//fast 或 fast.next 为 null , 说明链表没有环while(fast != null && fast.next != null){slow = slow.next;fast = fast.next.next;//快慢指针相遇了,fast 重新回到头节点 head,快慢指针再同时移动if(slow == fast){fast = head;while(fast != slow){fast = fast.next;slow = slow.next;}return fast;}}return null;}
}
http://www.yayakq.cn/news/543559/

相关文章:

  • 微站官网wordpress单页淘宝客主题
  • 游戏网站开发试验报告广西建设教育网站
  • 工信部个人网站备案建设银行个人网上银行app
  • 网站制作教程下载小程序商城怎么推广引流
  • 中文网站建设合同营销网站开发系统
  • 模板网站源码wordpress缺少临时文件夹
  • 驻马店河南网站建设房产网站关键词优化
  • 医疗 企业 网站建设江门站官网
  • 黄冈网站开发建设电子商务网站论文
  • 蚌埠哪里做网站wordpress权限ip
  • 郑州中色十二冶金建设有限公司网站常州网站推广招聘
  • 我想做教育网站那里做无锡游戏网站建设公司
  • 成都装修建材网站建设宁波专业网站建设怎么做
  • 北海网站建设网怎么推广自己的网站
  • 免费的网站平台天津智能网站建设哪家好
  • 一个虚拟主机可以做两个网站吧如何建立一个网站链接把文件信息存里
  • 天水网络推广搜索引擎优化有哪些要点
  • 做网站个体户经营范围影响网站速度的代码
  • 泉州最专业微信网站建设开发wordpress初学
  • 邯郸网站建设xy0310软文代写网
  • 做老师讲课视频的教育网站影楼ps后期修片的教程
  • 创建网站的流程是什么营销方案怎么写模板
  • 怎么做网站的百度收录电商运营入门基础知识
  • 网站首页的动态效果图怎么做asp网站后台产品管理中增加一个功能怎样修改
  • 网站名字设计asp.net企业网站后台管理系统
  • 住房与建设部网站首页常州网络优化排名
  • 怎么样自己建设网站广州公司注册名字查询
  • 建设行业网站价格像发微博 发wordpress
  • 制作京东网站建设菏泽做网站电话
  • 网站设计培训学校wordpress分类