Ứng dụng Danh Sách Liên Kết Vòng (Circular Linked List) / Hàng Đợi Queue
Bản chất của bài toán dùng Circular Linked List.
- Mũi tên .next của người cuối cùng sẽ trỏ lại vào phần tử HEAD (vòng lặp vô hạn).
- Khi điểm danh tới M, ta cắt Node ra khỏi chuỗi bằng cách nối prev.next = curr.next.
Cũng có thể triển khai bằng Hàng Đợi (Queue): Pop M-1 người và Push lại vào đuôi, bỏ người thứ M.