LeetCode 707 Thiết kế danh sách liên kết - F88 Casino Download Game Bài

Ngày 05 78win+đăng+nhập tháng 10 năm 2020 - Máy tính

1. Mô tả bài toán

Thiết kế việc thực hiện một danh sách liên kết. Bạn có thể chọn giữa việc sử dụng danh sách liên kết đơn hoặc danh sách liên kết kép để triển khai.

Trong danh sách liên kết đơn, mỗi nút sẽ có hai thuộc keo ma cao tính: val (giá trị của nút hiện tại) và next (con trỏ đến nút tiếp theo).

Nếu bạn quyết định sử dụng danh sách liên kết kép, thì ngoài các thuộc tính trên, bạn cần thêm một thuộc tính prev để trỏ đến nút trước đó.

Giả định rằng chỉ mục của các nút trong danh sách bắt đầu từ số không. Bây giờ, nổ hũ đổi thưởng hãy thực hiện lớp MyLinkedList với các phương thức sau:

  • MyLinkedList() được sử dụng để khởi tạo một đối tượng MyLinkedList.
  • int get(int index) được sử dụng để lấy giá trị của nút ở vị trí index. Nếu chỉ mục không hợp lệ, trả về -1.
  • void addAtHead(int val) được sử dụng để chèn một nút mới có giá trị val vào đầu danh sách. Sau khi chèn, nút mới sẽ trở thành nút đầu tiên.
  • void addAtTail(int val) được sử dụng để thêm một nút mới có giá trị val vào cuối danh sách.
  • void addAtIndex(int index, int val) được sử dụng để chèn một nút mới có giá trị val trước nút ở vị trí index. Nếu index bằng độ dài danh sách, nút mới sẽ được thêm vào cuối danh sách. Nếu index lớn hơn độ dài danh sách, nút sẽ không được chèn.
  • void deleteAtIndex(int index) được sử dụng để xóa nút ở vị trí index, nếu chỉ mục hợp lệ.

Lưu ý:

  • 0 <= index, val <= 1000
  • Không sử dụng các hàm hoặc thư viện danh sách liên kết sẵn có.
  • Các phương thức (get, addAtHead, addAtTail, addAtIndex, deleteAtIndex) có thể được gọi tối đa 2000 lần.

Ví dụ:

  • Đầu vào
1["MyLinkedList", "addAtHead", "addAtTail", "addAtIndex", "get", "deleteAtIndex", "get"]
2[[], [1], [3], [1, 2], [1], [1], [1]]
  • Đầu ra
1[null, null, null, null, 2, null, 3]
  • Giải thích
1MyLinkedList myLinkedList = new MyLinkedList();
2myLinkedList.addAtHead(1);
3myLinkedList.addAtTail(3);
4myLinkedList.addAtIndex(1, 2); // Danh sách liên kết bây giờ là 1->2->3
5myLinkedList.get(1);          // Trả về 2
6myLinkedList.deleteAtIndex(1); // Danh sách liên kết bây giờ là 1->3
7myLinkedList.get(1);          // Trả về 3

Bài toán xuất xứ: LeetCode