网站页面设计报价怎么做网页跳转
web/
2025/9/27 0:21:26/
文章来源:
网站页面设计报价,怎么做网页跳转,上海网站关键字优,wordpress post函数问题描述#xff1a;
给定一个链表的头节点 head #xff0c;返回链表开始入环的第一个节点。 如果链表无环#xff0c;则返回 null。如果链表中有某个节点#xff0c;可以通过连续跟踪 next 指针再次到达#xff0c;则链表中存在环。 为了表示给定链表中的环#xff0…问题描述
给定一个链表的头节点 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
解释链表中没有环。
解决方案
1、物理同向追击快指针速度-慢~ 1 格/次即相对追击速度为1时必然在追上时相遇
2、快指针一定先进入循环内慢指针进入时快指针已经循环了 n 圈
3、快指针与慢指针第一次相遇时 状态分析1满指针结束本次循环即到达循环开始节点的距离为 X 2链表起点 到达次循环开始节点的距离为 X 3设快指针新起点为 链表起点且速度等于满指针速度。
函数代码 class Solution {
public:ListNode *detectCycle(ListNode *head) {if(!head||!head-next) return NULL;ListNode*slowhead,*fasthead;while(1){if (!fast||!fast-next) return NULL;slowslow-next;fastfast-next-next;if(slowfast) break;}fasthead;while(slow!fast){slowslow-next;fastfast-next;}return fast;}
};
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81335.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!