判断给定的链表中是否有环。如果有环则返回true,否则返回false

 

1,快慢指针解决 判断链表是否有环应该是老生常谈的一个话题了,最简单的一种方式就是快慢指针,慢指针针每次走一步,快指针每次走两步,如果相遇就说明有环,如果有一个为空说明没有环

#链表节点
class ListNode:
    def __init__(self,node_value):
        self.value =node_value
        self.next =None        #默认情况,下一个元素None
# #判断
class Solution:
    def hasCycle(self , head ):
        # write code here
        if head is None or head.next is None:
            return False
         
        first = head.next
        last  = head.next.next
         
        while last is not None:
             
            if first.val == last.val:
                return True
            first = first.next
            if last.next is None or last.next.next is None:
                return False
            last = last.next.next
             
        return False
             

 

posted on 2021-03-14 19:53  jesse_zhao  阅读(306)  评论(0编辑  收藏  举报

导航