为什么网站数量减少,一个公司多个网站做优化,做抽奖的网站犯法吗,网站推广公司官网个人主页#xff1a;白日依山璟
专栏#xff1a;Java|数据结构与算法|每日一题 文章目录 1. 题目描述示例1#xff1a;示例2#xff1a;示例3#xff1a;提示: 2. 思路3. 代码 1. 题目描述
给你一个链表的头节点 head #xff0c;判断链表中是否有环。
如果链表中有某…个人主页白日依山璟
专栏Java|数据结构与算法|每日一题 文章目录 1. 题目描述示例1示例2示例3提示: 2. 思路3. 代码 1. 题目描述
给你一个链表的头节点 head 判断链表中是否有环。
如果链表中有某个节点可以通过连续跟踪 next 指针再次到达则链表中存在环。 为了表示给定链表中的环评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置索引从 0 开始。注意pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。
如果链表中存在环 则返回 true 。 否则返回 false 。
示例1 输入head [3,2,0,-4], pos 1 输出true 解释链表中有一个环其尾部连接到第二个节点。 示例2 输入head [1,2], pos 0 输出true 解释链表中有一个环其尾部连接到第一个节点 示例3 输入head [1], pos -1 输出false 解释链表中没有环。 提示:
链表中节点的数目范围是 [0, 104]-105 Node.val 105pos 为 -1 或者链表中的一个有效索引 。
题目链接
2. 思路
定义两个指针一快一慢。慢指针每次移动一次而快指针每次移动两步。初始化时位置都在head循环遍历链表移动快慢指针如果在移动的过程中快指针反过来追上慢指针就说明该链表为环形链表。否则快指针到达链表尾部该链表不为环形链表。
动画
3. 代码
/*** Definition for singly-linked list.* class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*/
public class Solution {public boolean hasCycle(ListNode head) {ListNode fast head;ListNode slow head;while (fast ! null fast.next ! null) {fast fast.next.next;slow slow.next;if (fast slow) {return true;}}return false;}
}运行结果 世界上有三种k梅花k方片k还有任何人不关注我我都会难过的ok