Viết hàm delete_Jast(L) có chức năng xoá phần tử cuối cùng của danh sách liên kết L.

Câu hỏi 2. Viết hàm delete_Jast(L) có chức năng xoá phần tử cuối cùng của danh sách liên kết L.


Để xoá phần tử cuối cùng của danh sách liên kết ta cần duyệt từ đầu danh sách đến nút cuối cùng sau đó xoá nút cuối cùng và cập nhật con trỏ next của nút trước nó. Nếu danh sách rỗng hoặc chỉ có một phần tử thì ta chỉ cần xoá phần tử đó và trả về danh sách. Mã nguồn Python cho hàm delete_last() như sau:

def delete_last(L):
   # Nếu danh sách rỗng, trả về None
   if L is None:
       return None
   
   # Nếu danh sách chỉ có một phần tử, xoá phần tử đó và trả về danh sách
   if L.next is None:
       del L
       return None
   
   # Tìm nút cuối cùng và nút trước nó
   prev_node = None
   curr_node = L
   while curr_node.next is not None:
       prev_node = curr_node
       curr_node = curr_node.next
   
   # Xoá nút cuối cùng và cập nhật con trỏ next của nút trước nó
   prev_node.next = None
   del curr_node
   
   # Trả về danh sách đã được xoá phần tử cuối cùng
   return L


Trắc nghiệm Tin học 11 Kết nối tri thức KHMT bài 30 Thiết lập thư viện cho chương trình

Bình luận

Giải bài tập những môn khác