【力扣100】142.环形链表2

添加链接描述

python 复制代码
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def detectCycle(self, head: Optional[ListNode]) -> Optional[ListNode]:
        # 思路是使用set,如果这个节点在set出现过,记录这个节点,并循环出这个节点的下标
        if head is None or head.next is None:
            return None
        visited=set()
        index=0
        while head:
            if head in visited:
                mynode=head
                return mynode
            visited.add(head)
            head=head.next
        return None

        

思路:

  1. 跟环形链表1不同的是,这道题需要返回的值是成环的第一个元素
  2. 所以选择set记录每一个节点,set的本质是哈希表,查询时间复杂度是O(1)
相关推荐
a努力。6 分钟前
小红书Java面试被问:ThreadLocal 内存泄漏问题及解决方案
java·jvm·后端·算法·面试·架构
LYFlied13 分钟前
【每日算法】LeetCode142. 环形链表 II
数据结构·算法·leetcode·链表
超级大只老咪14 分钟前
“和”与“或”逻辑判断与条件取反(Java)
java·算法
LYFlied14 分钟前
【每日算法】LeetCode 23. 合并 K 个升序链表
前端·数据结构·算法·leetcode·链表
xiaoxue..15 分钟前
LeetCode 第 15 题:三数之和
前端·javascript·算法·leetcode·面试
yaoh.wang18 分钟前
力扣(LeetCode) 28: 找出字符串中第一个匹配项的下标 - 解法思
python·程序人生·算法·leetcode·面试·职场和发展·跳槽
flashlight_hi18 分钟前
LeetCode 分类刷题:101. 对称二叉树
javascript·算法·leetcode
yaoh.wang19 分钟前
力扣(LeetCode) 35: 搜索插入位置 - 解法思路
程序人生·算法·leetcode·面试·职场和发展·跳槽·二分搜索
唯唯qwe-22 分钟前
Day20:贪心算法,跳跃游戏
python·算法·贪心算法
laocooon52385788624 分钟前
背包问题~~!C++
开发语言·c++·算法