【力扣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)
相关推荐
夜思红尘3 小时前
算法--双指针
python·算法·剪枝
散峰而望3 小时前
【算法竞赛】C++函数详解:从定义、调用到高级用法
c语言·开发语言·数据结构·c++·算法·github
CoderCodingNo3 小时前
【GESP】C++五级真题(贪心思想考点) luogu-B4071 [GESP202412 五级] 武器强化
开发语言·c++·算法
我有一些感想……3 小时前
An abstract way to solve Luogu P1001
c++·算法·ai·洛谷·mlp
前端小L3 小时前
双指针专题(三):去重的艺术——「三数之和」
javascript·算法·双指针与滑动窗口
在风中的意志3 小时前
[数据库SQL] [leetcode] 2388. 将表中的空值更改为前一个值
数据库·sql·leetcode
智者知已应修善业4 小时前
【求等差数列个数/无序获取最大最小次大次小】2024-3-8
c语言·c++·经验分享·笔记·算法
还不秃顶的计科生5 小时前
LeetCode 热题 100第二题:字母易位词分组python版本
linux·python·leetcode
LYFlied5 小时前
【每日算法】LeetCode 416. 分割等和子集(动态规划)
数据结构·算法·leetcode·职场和发展·动态规划
多米Domi0115 小时前
0x3f 第19天 javase黑马81-87 ,三更1-23 hot100子串
python·算法·leetcode·散列表