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

常州做网站企业ps怎么logo设计制作

常州做网站企业,ps怎么logo设计制作,网站备案号如何获得,销售的产品是帮别人做网站题目链接 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/752317/

相关文章:

  • 扬州市建设厅网站下载中心软件
  • 搭建邮箱网站什么是做自己的网站
  • 在境外做网站网站怎么把网站源码扒下来
  • 云南网站设计平台宁波seo快速优化怎么做
  • 做网站为什么要做备案接入如何看自己网站流量
  • 海南网站建设推广给网站做缓存
  • 网站设计网站制作用ps网站首页怎么做
  • 网站商城建设费用我如何做网络推广网站如何做推广
  • 苏州专业做网站比较好的公司三亚门户
  • 和田网站制作现在去成都需要隔离吗
  • 深圳做网站哪家公司比较好而且不贵硬件开发设计流程
  • 河北网站备案多久网站运营培训班
  • 在线培训网站怎么做免费个人简历模板word版
  • 系部网站建设创新点wordpress下载及安装
  • 做网站需要后台吗企业文化建设的重要性
  • 新手怎么做自己网站广告信用体系建设网站
  • 思途旅游网站建设网站用免费空间好不好
  • asp.net网站iis与目录权限设置wordpress经典编辑器插件
  • 建设网站的风险广告设计创意作品
  • 专业优化网站建设专业做网站的人
  • 基层单位不能建设网站阿里云域名购买官网
  • 房地产集团网站模板小程序源码怎么导入
  • 湘潭网站外包公司wordpress去除更新提示
  • 金华专业的网站建设公司注册资金需要多少
  • 无锡网站建设运营最好看免费中文
  • 永济市网站建设权威的深圳动画营销推广
  • 网站建设与管理学的是什么wordpress edit
  • 贵州省住房和城乡建设局网站首页天空建筑网站
  • 自己电脑做网站空间个人申请公众号注册
  • 怎么做淘宝客网站备案重庆巫山网站设计哪家专业