Suppose a doubly linked list of integers is given below and p is a reference to the node with value 17 in the list (i.e. p.info=17): (head) 7 1 6 4 31 17 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 = 13;
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 1 6 4 31 13 17 8 2". p trỏ vào nút 17, nên f = p.prev là nút 31 đứng ngay trước. Nút mới q mang 13 được khâu vào giữa 31 và 17 theo cả hai chiều: q.prev = f cùng q.next = p nối q sang hai bên, f.next = q cùng p.prev = q để 31 và 17 nhận lại q. Danh sách thành 7 1 6 4 31 13 17 8 2, dài thêm đúng một nút và không nút nào bị mất. "7 1 6 4 31 17 13 8 2" đặt 13 ngay sau 17, kết quả của việc lấy mốc là p.next chứ không phải p.prev. "7 1 6 4 31 17 8 2 13" là chèn vào cuối danh sách, chẳng dùng tới p. "7 13 1 6 4 31 17 8 2" và "13 7 1 6 4 31 17 8 2" chèn ở gần đầu danh sách, trong khi bốn lệnh gán chỉ chạm tới hai nút kề p là 31 và 17.

Cùng phần 1

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