150 principais entrevistasFácil

Ciclo de lista vinculada

Guia detalhado e implementação de Python para o problema do 'Ciclo de lista vinculada'.

Declaração do problema

Fácil

Dado o cabeçalho, o cabeçalho de uma lista vinculada, determine se a lista vinculada contém um ciclo.

Existe um ciclo em uma lista vinculada se houver algum nó na lista que possa ser alcançado novamente seguindo continuamente o próximo ponteiro. Internamente, pos é usado para denotar o índice do nó ao qual o próximo ponteiro da cauda está conectado. Observe que pos não é passado como parâmetro.

Retorne verdadeiro se houver um ciclo na lista vinculada. Caso contrário, retorne falso.

A entrada é fornecida como uma lista de valores e um número inteiro pos (o índice ao qual a cauda se conecta, -1 se não houver ciclo). Implemente uma função hasCycle(head: list, pos: int) -> bool.

Restrições
  • 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

Exemplos

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?
Considere usar estruturas de dados específicas de listas vinculadas, como conjuntos ou heaps.
Edge Cases to Watch
  • Estruturas de entrada vazias
  • Entradas de elemento único
  • Grandes limites numéricos

Pronto para resolver?

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

Abrir no Editor
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

Recursos Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.