当前位置: 首页 > 图灵资讯 > 技术篇> #yyds干货盘点# LeetCode程序员面试金典:环形链表

#yyds干货盘点# LeetCode程序员面试金典:环形链表

来源:图灵教育
时间:2023-06-11 09:16:05

题目:

给你一个链表的头节点 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

说明:链表中没有环。

代码实现:

public class Solution {    public boolean hasCycle(ListNode head) {        if (head == null || head.next == null) {            return false;        }        ListNode slow = head;        ListNode fast = head.next;        while (slow != fast) {            if (fast == null || fast.next == null) {                return false;            }            slow = slow.next;            fast = fast.next.next;        }        return true;    }}