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

 

posted @ 2021-02-04 22:06  qilibin  阅读(71)  评论(0编辑  收藏  举报