Suppose a doubly linked list of integers is given below and p is a reference to the node with value 12 in the list (i.e. p.info=12): (head) 7 11 6 4 13 12 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
int x = 15;
Node f = p.prev; //prev is a link to predecessor node
Node q = new Node(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 13 15 12 8 2". Nhờ danh sách liên kết đôi, p.prev cho ngay nút đứng trước p, tức f là nút 13. Nút mới q mang 15 được khâu vào giữa f và p bằng bốn lệnh gán: q.prev = f cùng q.next = p nối q sang hai bên, f.next = q cùng p.prev = q để hai bên nhận lại q. Kết quả 15 nằm giữa 13 và 12, cho 7 11 6 4 13 15 12 8 2. "7 11 6 4 13 12 15 8 2" đặt 15 sau 12, tức khâu vào phía p.next thay vì p.prev. "7 11 6 4 13 12 8 2 15" là thêm vào cuối danh sách, không dùng tới p. "15 7 11 6 4 13 12 8 2" thêm vào đầu danh sách, cũng không liên quan tới vị trí của p. "7 5 11 6 4 13 12 8 2" chèn số 5 ở chỗ thứ hai, trong khi giá trị được chèn là x = 15 và chỗ chèn hoàn toàn do p quyết định.

Cùng phần 1

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