LeetCode142环形链表
# coding:utf-8 """ Name : NO142.py Author : qlb Contect : 17801044486@163.com Time : 2021/2/4 10:40 Desc: """ #解题思路 # 暴力解法 遍历所有的节点 将被遍历过的节点存储在一个临时变量tmpNode中 # 每次判断当前节点是否在tmpNode中 如果在的话 证明发现环 环的入口就是当前节点 # 如果遍历结束还未发现环 则返回None class ListNode: def __init__(self, x): self.val = x self.next = None class Solution: def detectCycle(self, head: ListNode) -> ListNode:
# 此处可以用列表 也可以用集合 集合比列表快 为啥? 因为集合存入元素的时候会把内存地址也计算出来保存 这样查找某个元素 直接根据其内存地址就找到了 列表需要遍历所有 #tmpNode = [] tmpNode = set() curNode = head while curNode != None: if curNode in tmpNode: return curNode #tmpNode.append(curNode) tmpNode.add(curNode) curNode = curNode.next return