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

保山公司网站建设营销活动推广策划

保山公司网站建设,营销活动推广策划,做教育app的网站有哪些,网站广告如何做题目链接:142.环形链表II 题目描述: 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环…

题目链接:142.环形链表II

题目描述:

        给定一个链表的头节点  head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 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, 104] 内
  • -105 <= Node.val <= 105
  • pos 的值为 -1 或者链表中的一个有效索引

思路:参考环形链表I ,依旧使用快慢指针解决

        参考环形链表I ,快慢指针一定会在环形链表中相遇。

        以示例1为例:

        head为链表的头结点,meet为快慢指针在环中的相遇点, 由图可以初步判断:

        meet到入环的初始结点的距离等于head到入环的初始结点的距离。

证明:相遇点到入环起始结点的距离 = 链表头结点到入环起始结点的距离

        L为头结点到入环初始结点的距离,E为入环的初始结点,M为快慢指针相遇结点,X入环的初始结点到相遇点的距离,R为环的周长,R-X为相遇点到头结点的距离。

        在快慢指针相遇时,fast所走的路程为L+X+nR,slow所走的路程为L+X

        又因为慢指针走一步,快指针走两步,有以下公式:

2*慢指针的路程 = 快指针的路程

        代入快慢指针路程可以得到:

     L = (n-1)R+(R-X),n = 1,2,3...           

        当n等于1时,即相遇时,快指针刚好绕环一圈,则L = R-X 

相遇点到入环起始结点的距离 = 链表头结点到入环起始结点的距离

 代码实现:

    ListNode* slow = head;ListNode* fast = head;ListNode* meet = NULL;while(fast && fast->next){slow = slow->next;fast = fast->next->next;if (slow == fast){meet = slow;break;}}

        定义快慢指针,找到相遇结点meet,找到后跳出循环。

    ListNode* left = head;ListNode* right = meet;while(right){        if (left == right){return left;}left = left->next;right = right->next;}

        找到相遇点后,让头结点和相遇点同时往后遍历,找到入环的起始结点,若相遇点为空,直接返回NULL。

完整代码:

 typedef struct ListNode ListNode;
struct ListNode *detectCycle(struct ListNode *head) {ListNode* slow = head;ListNode* fast = head;ListNode* meet = NULL;while(fast && fast->next){slow = slow->next;fast = fast->next->next;if (slow == fast){meet = slow;break;}}ListNode* left = head;ListNode* right = meet;while(right){        if (left == right){return left;}left = left->next;right = right->next;}return NULL;
}
http://www.dtcms.com/wzjs/94158.html

相关文章:

  • 电子商务网站建设目标分析企业网络宣传推广方案
  • 成都古怪科技网站建设公司网站快速排名服务
  • 怎么给网站做关键词排名电商运营培训课程有哪些
  • 上传了网站标志怎么弄营销推广外包
  • 网站建设与设计方案短视频搜索优化
  • dedecms 图片网站模板兰蔻搜索引擎营销案例
  • 功能介绍的网站系统优化的方法
  • 公司网站忘了怎么做怎么创建自己的网站
  • 网页制作基础教程dw汕头seo优化项目
  • 武汉做网站的公司排名百度搜索热度查询
  • 30岁学网站开发成人计算机培训机构哪个最好
  • 做第三方网站注意什么网站怎么开发
  • 网易工作做网站工资奖金高吗seo服务包括哪些
  • j2ee网站开发开题报告开发定制软件公司
  • 上海网站开发技术最好公司电话爱站网ip反查域名
  • 青海做网站好的公司网推拉新app推广平台
  • 联系客户做网站确认已有81人感染
  • 泰国网站域名网上教育培训机构哪家好
  • 君临天下游戏网站开发者杭州专业seo
  • 做网站公司松江广告软文范例200字
  • 集团网站设计思路站长工具的使用seo综合查询排名
  • 企业网站建设好的案例网络热词2022
  • 网站建设优秀网站建微信营销平台有哪些
  • 独立网站建设深圳网络提速优化服务包
  • 加强党建网站建设的重要性网站建设找哪家公司好
  • 商务网站规划与建设小红书信息流广告投放
  • 织梦微电影分享网站织梦整站源码杭州市优化服务
  • iis上做的网站外网怎么访问不了seo的流程是怎么样的
  • 怎么做可以把网站图片保存下来吗搜索引擎优化培训中心
  • 金华做网站网站发布