Select the statement that is most correct. Suppose we are considering a singly linked list and p is some node in the list which has successor node. What does the java code snippet below do?

4 phương ánCó giải thích
Đề bài
Node q = p.next;
 p.next = q.next;

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 deletes the node after p.". Hai dòng mã chỉ sửa một liên kết: q giữ tạm nút ngay sau p, rồi p.next được trỏ thẳng tới q.next, tức nút thứ hai sau p. Từ lúc đó không còn liên kết nào trong danh sách dẫn tới q, nên q bị tách khỏi chuỗi, đúng nghĩa xoá nút nằm sau p, và chi phí chỉ O(1) vì đã có p trong tay. "It deletes the node before p." không thể xảy ra: danh sách liên kết đơn chỉ có liên kết đi tiếp, từ p không truy được nút đứng trước, muốn xoá nút đó phải dò lại từ đầu danh sách. "It deletes the node p." sai vì muốn tách p thì nút đứng trước p phải trỏ tới p.next, mà đoạn mã không hề chạm tới nút trước p. "It does not make any change on the list." sai vì p.next đã bị gán lại, cấu trúc liên kết thay đổi thật.

Cùng phần 1

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