Suppose a doubly linked list of integers is given below and p is a reference to the node with value 10 in the list (i.e. p.info=10): (head) 7 9 6 4 3 10 8 2 (tail) What does the list look like after the following java code snippet is run?

5 phương ánCó giải thích
Đề bài
Node p1,p2; p1 = p.next;
 p2 = p1.next;
 p.next = p2;
if(p2!=null) p2.prev=p;

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: "7 9 6 4 3 10 2". Danh sách là 7, 9, 6, 4, 3, 10, 8, 2 và p trỏ vào nút 10. Đoạn mã lấy p1 = p.next tức nút 8, rồi p2 = p1.next tức nút 2; lệnh p.next = p2 nối 10 thẳng sang 2 và p2.prev = p vá chiều ngược lại, nên nút 8 bị bỏ khỏi cả hai chiều liên kết. Kết quả là 7, 9, 6, 4, 3, 10, 2. Phương án "7 9 6 4 3 10 8" là kết quả của việc xoá nút cuối 2, nhưng mã không gán tail cũng không cắt liên kết sau nút 8. Phương án "7 9 6 4 3 8 2" ứng với xoá chính nút p là 10, trong khi p vẫn còn và còn là nơi phát ra liên kết mới. Phương án "7 9 6 4 10 8 2" ứng với xoá nút đứng trước p là 3, mà mã không chạm tới p.prev chút nào. Phương án "9 6 4 3 10 8 2" là kết quả xoá đầu danh sách, việc đó đòi gán lại head và mã không làm.

Cùng phần 1

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