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 3 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 = 5;
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 3 5 12 8 2". Danh sách liên kết đôi cho phép đi lùi, nên f lấy ngay p.prev là nút 3 mà không cần dò từ đầu. Bốn phép gán q.prev=f, q.next=p, f.next=q và p.prev=q khâu nút 5 vào giữa nút 3 và nút 12 theo cả hai chiều. "7 11 6 4 3 12 8 2 5" là thêm vào cuối, phải đi qua tail. "7 11 6 4 3 12 5 8 2" là chèn sau p, lúc đó phải dùng p.next chứ không phải p.prev. "7 5 11 6 4 3 12 8 2" là chèn sau nút đầu, chỉ đúng nếu p là nút thứ hai của danh sách. "5 7 11 6 4 3 12 8 2" là chèn vào đầu, việc đó bắt buộc gán lại head mà đoạn mã không chạm tới head.

Cùng phần 1

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