1. Kiến thức cốt lõi về Linked List
Linked List (Danh sách liên kết) là cấu trúc dữ liệu động, trong đó mỗi phần tử (node) chứa:
- Data (giá trị)
- Pointer/Reference trỏ tới node kế tiếp (singly linked list), hoặc tới cả trước và sau (doubly linked list).
-
- Intersection of Two Linked Lists
-
- Merge k Sorted Lists
Các loại Linked List
- Singly Linked List: mỗi node chỉ trỏ tới node sau.
- Doubly Linked List: mỗi node trỏ tới cả trước và sau.
- Circular Linked List: node cuối trỏ về node đầu (vòng tròn).
- Multi-level Linked List: mỗi node có thể trỏ tới nhiều danh sách con (phức tạp, ứng dụng flattening).
Ưu điểm
- Chèn, xóa linh hoạt (O(1) nếu biết vị trí).
- Kích thước động (không cần cấp phát trước như mảng).
- Thích hợp cho queue, stack, graph adjacency list.
Nhược điểm
- Truy cập ngẫu nhiên kém (muốn tới node thứ k phải duyệt từ đầu, O(n)).
- Tốn bộ nhớ do lưu thêm con trỏ.
- Cache locality kém hơn mảng (vì node nằm rải rác).