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

4 phương ánCó giải thích
Đề bài
Node p1,p2; p1 = p.prev;  // prev is a link to previous node
p2=p.next; p2.prev = p1;
p1.next = p2;

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 p.". Hai dòng đầu lấy p1 là nút liền trước p và p2 là nút liền sau p; hai dòng sau cho prev của p2 trỏ về p1 và next của p1 trỏ sang p2. Sau đó không còn liên kết nào từ danh sách dẫn vào p, trong khi p1 với p2 đã nối trực tiếp với nhau, nghĩa là p bị tháo khỏi danh sách; các trường trong p không bị xoá nhưng không ai đi tới nó được nữa. Việc "It deletes the node before p." sẽ cần nối p với nút trước p1, tức phải lấy thêm p1.prev. Việc "It deletes the node after p." sẽ cần nối p với nút sau p2, tức phải lấy thêm p2.next. Việc "It does not make any change on the list." không đúng vì đoạn mã có sửa thật hai liên kết của hai nút láng giềng, và chỉ một trong hai phép gán đó đã làm hình dạng danh sách khác trước.

Cùng phần 1

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