首页 > 编程语言 > 详细

【leetcode】Linked List Cycle (python)

时间:2014-07-16 17:18:29      阅读:314      评论:0      收藏:0      [点我收藏+]

题目分析见这里

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
            
            

【leetcode】Linked List Cycle (python),布布扣,bubuko.com

【leetcode】Linked List Cycle (python)

原文:http://blog.csdn.net/shiquxinkong/article/details/37818713

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!