---
# System prepended metadata

title: 206. Reverse Linked List

---

# 206. Reverse Linked List

## Tóm tắt đề bài

- Cho một linked list, đảo ngược linked list này.

### Giới hạn
- Giá trị của phần tử trong khoảng [0, 5000].
- -5000 <= Node.val <= 5000

## Lời giải
- Sử dụng 3 con trỏ prev, cur, next đại diện cho vị trí trước vị trí đang xét, vị trí đang xét, vị trí sau vị trí đang xét.
- Ý tưởng cơ bản: với mỗi 1 vòng lặp, để cho cur.next (đang là next) chuyển sang prev, sau đó dịch cả 3 vị trí lên 1 bước.
- Khi rời vòng lặp, cur đang trỏ tới null, vậy nên prev đang trỏ tới node cuối cùng của list, do đó trả về prev.

### Độ phức tạp thuật toán

Thời gian: $O(N)$
Bộ nhớ: $O(1)$

### Code tham khảo
https://leetcode.com/problems/reverse-linked-list/submissions/1209651188/?envType=daily-question&envId=2024-03-21
