Top 150-InterviewEinfach

Verknüpfter Listenzyklus

Detaillierte Anleitung und Python-Implementierung für das Problem „Linked List Cycle“.

Problemstellung

Einfach

Bestimmen Sie bei gegebenem Kopf, dem Kopf einer verknüpften Liste, ob die verknüpfte Liste einen Zyklus enthält.

In einer verknüpften Liste liegt ein Zyklus vor, wenn es einen Knoten in der Liste gibt, der durch kontinuierliches Verfolgen des nächsten Zeigers wieder erreicht werden kann. Intern wird pos verwendet, um den Index des Knotens anzugeben, mit dem der nächste Zeiger von tail verbunden ist. Beachten Sie, dass pos nicht als Parameter übergeben wird.

Gibt true zurück, wenn die verknüpfte Liste einen Zyklus enthält. Andernfalls wird false zurückgegeben.

Die Eingabe erfolgt als Liste von Werten und einer Ganzzahl pos (der Index, mit dem das Ende verbunden ist, -1, wenn kein Zyklus vorhanden ist). Implementieren Sie eine Funktion hasCycle(head: list, pos: int) -> bool.

Einschränkungen
  • The number of nodes in the list is in the range [0, 10000]
  • -100000 <= Node.val <= 100000
  • pos is -1 or a valid index in the linked list

Beispiele

Example 1
Input
[3,2,0,-4], 1
Output
True
Explanation

There is a cycle: the tail node (-4) connects back to the node at index 1 (value 2).

Example 2
Input
[1,2], 0
Output
True
Explanation

There is a cycle: the tail node (2) connects back to the node at index 0 (value 1).

Example 3
Input
[1], -1
Output
False
Explanation

There is no cycle in the list.

Need a Hint?
Erwägen Sie die Verwendung verknüpfter Listen-spezifischer Datenstrukturen wie Mengen oder Heaps.
Edge Cases to Watch
  • Leere Eingabestrukturen
  • Einzelelementeingaben
  • Große numerische Grenzen

Bereit zur Lösung?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Im Editor öffnen
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.