Leetcode 142. 环形链表 II

注意的点:

1、注意里面的判断条件,虽然代码少但是其实逻辑很多。

解法:快慢指针

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]:

        # 快慢指针
        slow, fast = head, head

        if not head: return None

        while fast.next and fast.next.next:
            slow = slow.next
            fast = fast.next.next
            if slow == fast: break # 得放在后面
        
        if not fast.next or not fast.next.next: 
            return None

        slow = head
        while slow != fast:
            slow = slow.next
            fast = fast.next

        return fast
            
相关推荐
不知名。。。。。。。。2 小时前
算法 ---哈希表
数据结构·算法·散列表
yi.Ist3 小时前
图论——Floyd算法
c++·算法·图论·floyd
让我们一起加油好吗9 小时前
【基础算法】初识搜索:递归型枚举与回溯剪枝
c++·算法·剪枝·回溯·洛谷·搜索
stbomei11 小时前
基于 MATLAB 的信号处理实战:滤波、傅里叶变换与频谱分析
算法·matlab·信号处理
2401_8762213411 小时前
Reachability Query(Union-Find)
c++·算法
德先生&赛先生12 小时前
LeetCode-542. 01 矩阵
算法·leetcode·矩阵
HAH-HAH12 小时前
【洛谷】P2197【模板】Nim 游戏
算法·游戏
lichkingyang12 小时前
最近遇到的几个JVM问题
java·jvm·算法
feifeigo12313 小时前
matlab中随机森林算法的实现
算法·随机森林·matlab
躲着人群14 小时前
次短路&&P2865 [USACO06NOV] Roadblocks G题解
c语言·数据结构·c++·算法·dijkstra·次短路