---
round: 3
ticket_no: 1
source_no: 21
slug: reverse-linked-list
topic: Linked Lists
difficulty: Easy
leetcode_id: 206
attempted: true
score:
verdict:
reviewed_at:
---

# Билет 01 — Reverse Linked List

## Условие (как предъявлено)

Дан односвязный список. Разверните его.

```
Input:  head = [1,2,3,4,5]  →  Output: [5,4,3,2,1]
Input:  head = [1,2]        →  Output: [2,1]
Input:  head = []           →  Output: []
```

Constraints: `0 <= количество узлов <= 5000`.

## Ответ

> Необходимо последовательно пройти от начала до конца этого списка и перепривязывать элементы в обратную сторону. Здесь важно правильно соблюсти все условия, ограниченные, правильно условия остановки для первого элемента обработки, корректную сделать. Ничего дополнительного делать не нужно, достаточно просто перепривязать элементы и вернуть просто ссылку на последний элемент, который станет уже первым.

## Разбор

**Что верно:**

**Что упущено и ошибки:**

**Эталонная идея:**

**Время:** O(...) — что доминирует

**Память:** O(...) дополнительная (+ O(...) на выход / стек рекурсии)

**Граничные случаи:** 1) ... 2) ... 3) ...

**Критерии:** идея ⚠️ · структура данных ⚠️ · сложность ⚠️ · граничные случаи ⚠️

**Канон сложности:** сверить с [`../complexity-cheat-sheet.md`](../complexity-cheat-sheet.md) (таблица по 32 задачам)

**Разбор задачи:** [`../../algo-solutions/02-extra/01-linked-lists/21-reverse-linked-list.md`](../../algo-solutions/02-extra/01-linked-lists/21-reverse-linked-list.md)
