Leetcode - 141. 环形链表

解题思路参考代码中的注释:
/**
 * 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) {

        // 快慢两个指针从head开始出发
        ListNode fast = head, slow = head;
        while (fast != null && fast.next != null) {
            fast = fast.next.next;
            slow = slow.next;
            if (fast == slow) {
                return true;
            }
        }
        return false;
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
03-19 10:38
实力求职者:真的绷不住了,第一张霸总人设,第二张求生欲拉满
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务