Consider the fun() method in a singly linked list below:

4 phương ánCó giải thích
Đề bài
void fun()
  { if (isEmpty())  return;
      if (head == tail)
           head = tail = null;
             else head = head.next;
  }

Specify the correct statement about the fun() method in the code above (choose the most suitable one).

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "It removes the first element of the list". Hàm thoát ngay nếu danh sách rỗng; nếu chỉ còn một nút thì head == tail nên cả hai mốc bị đặt null và danh sách thành rỗng; các trường hợp còn lại thì head = head.next dời đầu sang nút thứ hai, nên nút đầu cũ không còn ai trỏ tới và bị loại. Cả hai nhánh đều tác động vào phía head, nghĩa là hàm bỏ phần tử đầu, đúng hành vi dequeue của hàng đợi hoặc pop của ngăn xếp cài bằng danh sách liên kết. Phương án "It removes the last element of the list" sai vì muốn xoá nút cuối phải đi tìm nút kế cuối rồi gán lại tail, mà mã này không có vòng lặp nào. Phương án "It removes the second element of the list" sai vì head.next được dùng làm đầu mới, tức nút thứ hai được giữ lại chứ không bị bỏ. Phương án "It returns the first element of the list" sai vì hàm khai báo void và không có lệnh trả giá trị nào, nó chỉ sửa liên kết.

Cùng phần 1

Xuất hiện trong 1 bộ đề