From 42a880dfc81f07330dcb3a252cdf56da524775e4 Mon Sep 17 00:00:00 2001 From: jhaos Date: Fri, 23 Oct 2020 10:20:33 +0800 Subject: [PATCH] Add new file --- ...57\345\275\242\351\223\276\350\241\250.md" | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 "2020.10/10.9 - 141. \347\216\257\345\275\242\351\223\276\350\241\250.md" diff --git "a/2020.10/10.9 - 141. \347\216\257\345\275\242\351\223\276\350\241\250.md" "b/2020.10/10.9 - 141. \347\216\257\345\275\242\351\223\276\350\241\250.md" new file mode 100644 index 0000000..cc96fe6 --- /dev/null +++ "b/2020.10/10.9 - 141. \347\216\257\345\275\242\351\223\276\350\241\250.md" @@ -0,0 +1,59 @@ +给定一个链表,判断链表中是否有环。 +如果链表中有某个节点,可以通过连续跟踪 `next` 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 `pos` 来表示链表尾连接到链表中的位置(索引从 `0` 开始)。 如果 `pos` 是 `-1`,则在该链表中没有环。注意:`pos` 不作为参数进行传递,仅仅是为了标识链表的实际情况。 +如果链表中存在环,则返回 `true` 。 否则,返回 `false` 。 +**进阶:** +你能用 _O(1)_(即,常量)内存解决此问题吗? +**示例 1:** +``` +输入:head = [3,2,0,-4], pos = 1 +输出:true +解释:链表中有一个环,其尾部连接到第二个节点。 +``` +**示例 2:** +``` +输入:head = [1,2], pos = 0 +输出:true +解释:链表中有一个环,其尾部连接到第一个节点。 +``` +**示例 3:** +``` +输入:head = [1], pos = -1 +输出:false +解释:链表中没有环。 +``` +**提示:** +- 链表中节点的数目范围是 `[0, 104]` +- `-105 <= Node.val <= 105` +- `pos` 为 `-1` 或者链表中的一个 **有效索引** 。 + +通过次数`245,366` | 提交次数`494,206` +**代码实现** + +```python +# Definition for singly-linked list. +class ListNode: + def __init__(self, x): + self.val = x + self.next = None + +class Solution: + def hasCycle(self, head: ListNode) -> bool: + fast, slow = head, head + if head == None: + return False + while fast and fast.next and slow: + fast = fast.next.next + slow = slow.next + if fast == slow: + break + else: + return False + return True +``` + +``` +来源:力扣(LeetCode) +链接:https://leetcode-cn.com/problems/linked-list-cycle +著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 +``` + -- GitLab