问题描述
判断给定的链表中是否有环。如果有环则返回true,否则返回false。
输入描述:
输入一个链表
输出描述:
输出链表是否包含环
示例
示例1
输入
1->2->3
输出
false
解决思路
分析
- 通过快慢指针的方式,一个指针一次过一个节点,另一个指针一次过两个节点,当快节点追上来满节点,则说明包含环状结构。
方法
- 通过快慢指针的方式判断(龟兔赛跑:图片采用了力扣的图片)
代码实现
// 思路1
public class Solution {
if (head == null || head.next == null) {
return false;
}
ListNode slow = head;
ListNode fast = head.next;
while (fast != null && fast.next != null) {
if (fast == slow) {
return true;
}
slow = slow.next;
fast = fast.next.next;
}
return false;
}
小伙伴如果想测试的话,可以直接到牛客网这个链接做测试