Le migliori 150 intervisteFacile

Elenco di riordino

Guida dettagliata e implementazione Python per il problema 'Elenco riordino'.

Dichiarazione del problema

Facile

Ti viene assegnato l'inizio di un elenco collegato singolarmente. L'elenco può essere rappresentato come:

L0 → L1 → … → Ln-1 → Ln

Riordina l'elenco in modo che sia nel seguente formato:

L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → …

Non è possibile modificare i valori nei nodi dell'elenco. Solo i nodi stessi possono essere modificati.

L'elenco collegato è rappresentato come un elenco Python. Implementa una funzione reorderList(head: list) -> list che restituisce l'elenco riordinato.

Vincoli
  • The number of nodes in the list is in the range [1, 50000]
  • 1 <= Node.val <= 1000

Esempi

Example 1
Input
[1,2,3,4]
Output
[1,4,2,3]
Explanation

The list 1->2->3->4 is reordered to 1->4->2->3.

Example 2
Input
[1,2,3,4,5]
Output
[1,5,2,4,3]
Explanation

The list 1->2->3->4->5 is reordered to 1->5->2->4->3.

Need a Hint?
Prendi in considerazione l'utilizzo di strutture dati specifiche dell'elenco collegato come set o heap.
Edge Cases to Watch
  • Strutture di input vuote
  • Ingressi a elemento singolo
  • Grandi limiti numerici

Pronto a risolvere?

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

Apri nell'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

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.