Suppose a doubly linked list of integers is given below and p is a reference to the node with value 19 in the

5 phương ánCó giải thích
Đề bài
list (i.e. p.info=19):

(head) 7 21 6 4 23 19 8 12 (tail) What does the list look like after the following java code snippet is run?

Đề bài
int x = 5;
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 21 6 4 23 5 19 8 12". Vì là danh sách liên kết đôi nên lấy được nút trước p chỉ bằng một bước: p trỏ nút 19 nên f = p.prev là nút 23. Nút mới q mang 5 được gắn q.prev = f và q.next = p, rồi f.next = q cùng p.prev = q vá cả hai chiều, đặt q đúng vào khe giữa 23 và 19, tức chèn ngay trước p. "5 7 21 6 4 23 19 8 12" sai vì đoạn mã không chạm head; muốn 5 lên đầu thì p phải là nút đầu tiên. "7 21 6 4 23 19 8 12 5" sai vì chèn vào cuối cần f là nút cuối và q.next phải là null. "7 21 6 4 23 19 8 5 12" sai vì vị trí đó ứng với p trỏ nút 12 chứ không phải nút 19. "7 21 6 4 23 19 5 8 12" sai vì đó là chèn sau p, phải viết q.prev = p và q.next = p.next.

Cùng phần 1

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