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ượngMyLinkedList
.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ếuindex
bằng độ dài danh sách, nút mới sẽ được thêm vào cuối danh sách. Nếuindex
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