【力扣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)
相关推荐
奇点 ♡1 分钟前
IO相关的
数据结构·算法
小张成长计划..3 分钟前
【优选算法】1:双指针
算法
simon_skywalker3 分钟前
线性代数及其应用习题答案(中文版)第二章 矩阵代数 2.1 矩阵运算(1)
线性代数·算法·矩阵
天赐学c语言6 分钟前
12.9 - 排序数组 && 野指针和空指针的区别
c++·算法·排序算法·leecode
努力学算法的蒟蒻11 分钟前
day29(12.9)——leetcode面试经典150
算法·leetcode·面试
小猪咪piggy18 分钟前
【算法】leetcode 100 二叉树
数据结构·算法·leetcode
橘颂TA19 分钟前
【剑斩OFFER】算法的暴力美学——排序数组
算法·leetcode·动态规划
C雨后彩虹19 分钟前
数组二叉树
java·数据结构·算法·华为·面试
算法如诗22 分钟前
**智能建模算法(GA-ELM)**与**多目标优化算法(NSGA-Ⅱ)** 相结合,用于解决**42CrMo钢表面激光熔覆工艺优化**问题
算法
Wild_Pointer.23 分钟前
数据结构与算法精解:时间序列降采样算法LTOB
c++·算法