【leetcode】Linked List Cycle (python)

来源:互联网 发布:如何安装管家婆软件 编辑:程序博客网 时间:2024/06/06 03:15

题目分析见这里

class Solution:    # @param head, a ListNode    # @return a list node    def detectCycle(self, head):        if None == head or None == head.next:            return None        pfast = head        pslow = head        #找第一次相遇的点,若存在环路,则肯定会相遇        while pfast and pfast.next:            pfast = pfast.next.next            pslow = pslow.next            if pslow == pfast: break        if pslow != pfast:            return None        #pfast从头开始,则下次相遇的点就是循环开始的点        pfast = head        while True:            if pfast == pslow:                return pfast            pfast = pfast.next            pslow = pslow.next                        

0 0
原创粉丝点击