Select the statement that is most correct. Suppose we are considering a doubly linked list which has at least 2 nodes. What does the java code snippet below do?

4 phương ánCó giải thích
Đề bài
Node f = tail.prev; // prev is a link to predecessor node
Node q = new Node(x);
q.prev = f; q.next = tail;
f.next = q; tail.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: "It inserts new node with value x before the last node.". Mốc duy nhất đoạn mã dùng là f bằng tail.prev, tức nút áp cuối; bốn phép gán q.prev bằng f, q.next bằng tail, f.next bằng q và tail.prev bằng q khâu nút mới vào đúng khe giữa nút áp cuối và nút cuối, giữ nguyên cả head lẫn tail. Vì vậy "It creates new node with value x at the middle of the list." sai vì vị trí chèn luôn cố định ngay trước nút cuối bất kể danh sách dài bao nhiêu, với danh sách hai nút nó rơi ngay sau head; "It inserts new node with value x after the last node." sai vì muốn nối sau nút cuối thì phải gán tail.next bằng q rồi tail bằng q, mà đoạn mã không hề sửa tail; "It replaces the last node with new node with value x." sai vì nút cuối vẫn còn nguyên trong chuỗi liên kết qua q.next bằng tail và tail.prev bằng q, không nút nào bị tháo ra.

Cùng phần 1

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