【力扣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)
相关推荐
橘颂TA12 小时前
【剑斩OFFER】算法的暴力美学——力扣 127 题:单词接龙
算法·leetcode·职场和发展
PnZh0Y112 小时前
python代码练习1
开发语言·python·算法
_Soy_Milk12 小时前
【算法工程师】—— Python 高级
开发语言·python·算法
小毅&Nora12 小时前
【Java线程安全实战】⑭ ForkJoinPool深度剖析:分治算法的“智能厨房“如何让并行计算跑得更快
java·算法·安全
Swift社区13 小时前
LeetCode 380 O(1) 时间插入、删除和获取随机元素
算法·leetcode·职场和发展
budingxiaomoli13 小时前
优选算法-哈希表
数据结构·算法·散列表
高频交易dragon13 小时前
An Impulse Control Approach to Market Making in a Hawkes LOB Market从论文到生产
人工智能·算法·机器学习
平哥努力学习ing13 小时前
线性表与链表(part 1)
数据结构·链表
java修仙传13 小时前
力扣hot100:划分字母区间
算法·leetcode·职场和发展
Frank_refuel13 小时前
C++STL之set和map的接口使用介绍
数据库·c++·算法