150 najlepszych wywiadówŁatwe

Cykl listy połączonej

Szczegółowy przewodnik i implementacja Python dla problemu „Cykl listy połączonej”.

Oświadczenie o problemie

Łatwe

Biorąc pod uwagę nagłówek, nagłówek połączonej listy, określ, czy połączona lista zawiera cykl.

Na liście połączonej występuje cykl, jeśli na liście znajduje się jakiś węzeł, do którego można ponownie dotrzeć, podążając w sposób ciągły za następnym wskaźnikiem. Wewnętrznie pos służy do oznaczenia indeksu węzła, do którego podłączony jest następny wskaźnik ogona. Należy pamiętać, że pos nie jest przekazywane jako parametr.

Zwróć wartość true, jeśli na połączonej liście znajduje się cykl. W przeciwnym razie zwróć wartość false.

Dane wejściowe podawane są w postaci listy wartości i liczby całkowitej poz (indeks, z którym łączy się ogon, -1, jeśli nie ma cyklu). Zaimplementuj funkcję hasCycle(head: list, pos: int) -> bool.

Ograniczenia
  • 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

Przykłady

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?
Rozważ użycie struktur danych specyficznych dla listy połączonej, takich jak zestawy lub sterty.
Edge Cases to Watch
  • Puste struktury wejściowe
  • Wejścia jednoelementowe
  • Duże granice liczbowe

Gotowy do rozwiązania?

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

Otwórz w Edytorze
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

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.