python判断链表是否有环

Posted 一起来学python

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python判断链表是否有环相关的知识,希望对你有一定的参考价值。

class Node:
    def __init__(self,value=None):
        self.value = value
        self.next = None

class LinkList:
    def __init__(self,head = None):
        self.head = head

    def get_head_node(self):
        """
        获取头部节点
        """
        return self.head
        
    def append(self,value) :
        """
        从尾部添加元素
        """   
        node = Node(value = value)  
        cursor = self.head 
        if self.head is None:
            self.head = node
        else:    
            while cursor.next is not None:
                cursor = cursor.next
        
 
            cursor.next = node
            if value==4:
                node.next = self.head
    
    def traverse_list(self):
        head = self.get_head_node()
        cursor = head
        while cursor is not None:
            print(cursor.value)
            cursor = cursor.next
        print("traverse_over") 
        
    def hasCycle(self, head):
        """
        :type head: ListNode
        :rtype: bool
       """
        slow=fast=head
        while slow and fast and fast.next:
            slow = slow.next
            fast = fast.next.next
            if slow is fast:
                return True
        return False
    

    
def main():
    l = LinkList()
    l.append(1)
    l.append(2)
    l.append(3)
    l.append(4)
    head = l.get_head_node()
    print(l.hasCycle(head))
    #l.traverse_list()


if __name__ == "__main__":
    main()
    

以上是关于python判断链表是否有环的主要内容,如果未能解决你的问题,请参考以下文章

快慢指针判断链表是否有环

链表—判断是否有环

算法题:判断链表中是否有环

链表oj---->判断链表中是否有环

[leetcode]141. Linked List Cycle判断链表是否有环

算法如何判断链表是否有环