Pythonでのシングルリンクリストでループを見つける
ループを含む単一リンクリストの先頭を指定します.リストの末尾のポイントは、リストの一部のノードに対してNoneの代わりに指定します.
標準クラスのリンクリストを与えられます
我々は、異なる速度で動いている一度に2つのノードを見ます.ノードがこれまでに等しいならば、それは我々の輪があるところです.
標準クラスのリンクリストを与えられます
class LinkedList:
def __init__(self, value):
self.value = value
self.next = None
リンクリストを見ると、ループがどこに戻ってくるかを返すべきです.それで、我々の尾ノードの後、我々はそれの後に来ることを返します.我々は、異なる速度で動いている一度に2つのノードを見ます.ノードがこれまでに等しいならば、それは我々の輪があるところです.
def findLoop(head):
first = head.next
second = head.next.next
while first != second:
first = first.second
second = second.next.next
while first != second:
first = first.next
second = second.next
return first
Reference
この問題について(Pythonでのシングルリンクリストでループを見つける), 我々は、より多くの情報をここで見つけました https://dev.to/jabermudez11/finding-a-loop-in-a-singly-linked-list-in-python-2041テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol