Leetcode[141] 环形链表
题目描述 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 示例 1: 输入:head = [3,2,0,-4], pos = 1 输出:true 解释:链表中有一个环,其尾部连接到第二个节点。 示例 2: 输入:head = [1,2], pos = 0 输出:true 解释:链表中有一个环,其尾部连接到第一个节点。 示例 3: 输入:head = [1], pos = -1 输出:false 解释:链表中没有环。 题解思路 双指针法:从头节点开始,建立两个快慢指针 quick 和 slow,快指针每次走两步 quick = quick -> next -> next,慢指针每次走一步 slow = slow -> next,同时遍历链表,当快慢指针相遇时,说明该链表有环,否则说明链表中无环。 注意:快慢指针遍历链表时,终止条件为:quick != NULL && quick -> next != NULL AC代码 /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ bool hasCycle