Entrevista a los 150 mejoresfácil

Ciclo de lista enlazada

Guía detallada e implementación de Python para el problema del 'Ciclo de lista vinculada'.

Declaración del problema

fácil

Dado el encabezado, el encabezado de una lista vinculada, determine si la lista vinculada tiene un ciclo.

Hay un ciclo en una lista enlazada si hay algún nodo en la lista al que se puede acceder nuevamente siguiendo continuamente el siguiente puntero. Internamente, pos se usa para indicar el índice del nodo al que está conectado el siguiente puntero de la cola. Tenga en cuenta que pos no se pasa como parámetro.

Devuelve verdadero si hay un ciclo en la lista vinculada. De lo contrario, devuelve falso.

La entrada se proporciona como una lista de valores y un número entero pos (el índice al que se conecta la cola, -1 si no hay ciclo). Implementar una función hasCycle(head: list, pos: int) -> bool.

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

Ejemplos

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 la posibilidad de utilizar estructuras de datos específicas de listas vinculadas, como conjuntos o montones.
Edge Cases to Watch
  • Estructuras de entrada vacías
  • Entradas de un solo elemento
  • Grandes límites numéricos

¿Listo para resolver?

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

Abrir en el 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 recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.