寒光博客

[LeetCode]141.环形链表
题目 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的...
扫描右侧二维码阅读全文
22
2020/06

[LeetCode]141.环形链表

题目

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

为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。

示例 1:

输入:head = [3,2,0,-4], pos = 1
输出:true

解释:链表中有一个环,其尾部连接到第二个节点。

链接:https://leetcode-cn.com/problems/linked-list-cycle

分析及反思

刚开始题目有点没明白 以为pos还要自己来算 结果也没有输入pos,,,我hashMap都写好了哈哈哈 结果是 pos代表结果,,迷惑行为鸭


参考上述文章 哈哈哈

使用双指针,一个指针每次移动一个节点,一个指针每次移动两个节点,如果存在环,那么这两个指针一定会相遇。

要注意第一个节点如果为空 所以要第一个判 下一个节点是否为空
同时把本节点 下一个节点 下下一个节点也当做判断条件 只要有一个为空 定为非闭环

代码

/**
 * 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) {
        if (head == null) return false;//一开始
        ListNode s = head;
        ListNode f = head.next;
        while (s != null && f != null && f.next != null) {//s s.next s.next.next
            if (s == f) return true;//一开始就是环 或者最后步进为环
            s = s.next;
            f = f.next.next;
        }
        return false;
    }
}
本文作者:Author:     文章标题:[LeetCode]141.环形链表
本文地址:http://dxoca.cn/Algorithm/362.html       百度已收录
版权说明:若无注明,本文皆为“Dxoca's blog (寒光博客)”原创,转载请保留文章出处。
Last modification:June 22nd, 2020 at 04:54 pm
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment