LeetCode-141-判断是否是环形链表

  |   0 评论   |   0 浏览

题目描述

给定一个链表,判断链表中是否有环。

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。

如果链表中存在环,则返回 true 。 否则,返回 false 。

解法

经典解法、快慢指针

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

运行结果:

image.png


标题:LeetCode-141-判断是否是环形链表
作者:guobingwei
地址:http://guobingwei.tech/articles/2020/11/06/1604674707464.html