Suppose a doubly linked list of integers is given below and p is a reference to the node with value 15 in the list (i.e. p.info=15): (head) 7 11 6 4 3 15 8 12 (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
int x = 35;
Node f = p.prev; // prev is a link to predecessor node
Node q = new Node(x); // Create new node with value x
q.prev = f; q.next = p;
f.next = q; p.prev = q;

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 11 6 4 3 35 15 8 12". Đoạn mã lấy f bằng p.prev với p là nút 15, nên f là nút 3 đứng liền trước; bốn phép gán q.prev bằng f, q.next bằng p, f.next bằng q và p.prev bằng q khâu nút mới mang giá trị 35 vào đúng khe giữa 3 và 15, nên 35 hiện ra ngay trước 15. Vì vậy "35 7 11 6 4 3 15 8 12" sai vì chèn vào đầu còn cần gán lại head, điều đoạn mã không làm; "7 11 6 4 3 15 8 12 35" sai vì nối vào cuối phải sửa tail chứ không phải p.prev; "7 11 6 4 3 15 8 35 12" sai vì nó chèn trước nút cuối, tức mốc phải là tail.prev; "7 11 6 4 3 15 35 8 12" sai vì nó đặt nút mới sau 15, nghĩa là hai lệnh gán cuối phải dùng p.next thay cho p.prev.

Cùng phần 1

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