Phỏng vấn top 150Dễ dàng

Chu kỳ danh sách liên kết

Hướng dẫn chi tiết và triển khai Python cho vấn đề 'Chu kỳ danh sách liên kết'.

Tuyên bố vấn đề

Dễ dàng

Cho head, phần đầu của danh sách liên kết, xác định xem danh sách liên kết có chu trình trong đó hay không.

Có một chu trình trong danh sách liên kết nếu có một số nút trong danh sách có thể truy cập lại bằng cách liên tục đi theo con trỏ tiếp theo. Trong nội bộ, pos được sử dụng để biểu thị chỉ mục của nút mà con trỏ tiếp theo của đuôi được kết nối tới. Lưu ý rằng pos không được truyền dưới dạng tham số.

Trả về true nếu có một chu trình trong danh sách liên kết. Nếu không, trả về sai.

Đầu vào được đưa ra dưới dạng danh sách các giá trị và một số nguyên pos (chỉ số nơi phần đuôi kết nối với, -1 nếu không có chu kỳ). Triển khai hàm hasCycle(head: list, pos: int) -> bool.

Ràng buộc
  • The number of nodes in the list is in the range [0, 10000]
  • -100000 <= Node.val <= 100000
  • pos is -1 or a valid index in the linked list

Ví dụ

Example 1
Input
[3,2,0,-4], 1
Output
True
Explanation

There is a cycle: the tail node (-4) connects back to the node at index 1 (value 2).

Example 2
Input
[1,2], 0
Output
True
Explanation

There is a cycle: the tail node (2) connects back to the node at index 0 (value 1).

Example 3
Input
[1], -1
Output
False
Explanation

There is no cycle in the list.

Need a Hint?
Hãy cân nhắc việc sử dụng các cấu trúc dữ liệu dành riêng cho Danh sách Liên kết như tập hợp hoặc đống.
Edge Cases to Watch
  • Cấu trúc đầu vào trống
  • Đầu vào phần tử đơn
  • Giới hạn số lớn

Sẵn sàng để giải quyết?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Mở trong Trình chỉnh sửa
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

Tài nguyên Python được đề xuất

Mở rộng kiến thức của bạn với các hướng dẫn tương tác, bảng ghi chú và so sánh mã có liên quan.