Day32。循環リンクリスト

件名の説明:

リストを指定すると、リストがリングかどうかが決定されます。
リングを与えられたリストを表示するために、我々は、POS整数(インデックスは0から始まる)リストの位置を表すために、リストの最後に接続されています。posが-1の場合、リングがこのリストに含まれていません。

テストケース:

示例 1:
输入:head = [3,2,0,-4], pos = 1
输出:true
解释:链表中有一个环,其尾部连接到第二个节点。
示例 2:
输入:head = [1,2], pos = 0
输出:true
解释:链表中有一个环,其尾部连接到第一个节点。
示例 3:
输入:head = [1], pos = -1
输出:false
解释:链表中没有环。

ここに画像を挿入説明

コードは以下の通りであります:

コレクション:

        if head == None:
            return False
        num = set()
        fir = head
        while fir != None:
            if fir in num:
                return True
            num.add(fir)
            fir = fir.next
        return False

ここに画像を挿入説明

デュアルポインタ:

class Solution(object):
    def hasCycle(self, head):
        """
        :type head: ListNode
        :rtype: bool
        """
        if head == None:
            return False
        fir = head
        sec = head.next
        while fir != sec:
            if sec == None or sec.next == None:
                return False     
            fir = fir.next
            sec = sec.next.next
        return True

ここに画像を挿入説明

公開された71元の記事 ウォンの賞賛4 ビュー1104

おすすめ

転載: blog.csdn.net/qq_44957388/article/details/101481164