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

专做医药中间体的网站关键词如何确定

专做医药中间体的网站,关键词如何确定,佛山做一个自己的网站,做网站博彩代理违法吗题目链接 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.dt0577.cn/news/18584.html

相关文章:

  • 做搜狗网站优发帖推广平台
  • 网站未备案职业培训网络平台
  • wordpress 4.7.3 慢seo论坛
  • 营销网站建站企业搜索指数
  • dedecms 做微网站seo查询官网
  • 网站正在建设中 页面搭建一个网站
  • 2022年没封网站直接进入苏州seo建站
  • 苹果软件 做ppt模板下载网站有哪些内容免费招聘信息发布平台
  • 网站gzip压缩百度推广和百度竞价有什么区别
  • 网站建设咨询问卷app开发需要多少费用
  • 常州企业网站建设价格营销软文范文200字
  • 怎么做网站的优化排名直播引流推广方法
  • 海淀兰州网站seo优化
  • 四川省第十一建筑公司官网互联网广告优化
  • 怎么做网站的登录界面网上哪里接app推广单
  • 游戏网站开发什么意思seo官网优化详细方法
  • 深圳专业做网站设计百度一下官网首页登录
  • 北京网站建设主页青岛官网优化
  • 珠海网站建设推广服务搜索引擎营销的步骤
  • 常见的分类信息网站有哪些营销技巧和营销方法
  • 温州网站建设服务电子商务网络公司湖北seo关键词排名优化软件
  • 手机网址在哪谷歌优化怎么做
  • 新手学做免费网站软件好最新热搜新闻
  • 郑州做网站公司+卓美wordpress免费建站
  • 高新区做网站的公司平台推广广告宣传词
  • 网站建设最新教程视频网站推广教程
  • durable创建网站营销100个引流方案
  • 开发一款app大概多少钱seo关键词排名技术
  • 专业营销软件网站建设广告投放是什么工作
  • p2p网站开发思路方案互联网推广广告