150 najlepszych wywiadówŁatwe

Lista ponownego zamówienia

Szczegółowy przewodnik i implementacja Python dla problemu „Lista ponownego zamówienia”.

Oświadczenie o problemie

Łatwe

Otrzymujesz nagłówek listy z pojedynczym łączem. Listę można przedstawić w następujący sposób:

L0 → L1 → … → Ln-1 → Ln

Zmień kolejność listy tak, aby miała następującą formę:

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

Nie możesz modyfikować wartości w węzłach listy. Zmieniać można tylko same węzły.

Połączona lista jest reprezentowana jako lista Python. Zaimplementuj funkcję reorderList(head: list) -> list, która zwraca listę o zmienionej kolejności.

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

Przykłady

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?
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.