Select the statement that is most correct. Suppose we are considering a doubly linked list which is not empty. What does the java code snippet below do?

2 phương ánCó giải thích
Đề bài
Node q = new Node(x);
q.prev=null;
q.next = head;
head.prev = q;
head = 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 at the head of the list.". Nút mới q được tạo với q.prev = null, tức không có ai đứng trước nó; q.next = head cho nó trỏ sang nút đầu cũ; head.prev = q nối chiều ngược để danh sách hai chiều vẫn nhất quán; cuối cùng head = q đưa chính q thành nút đầu mới. Vì vậy x nằm ở vị trí đầu tiên, trước giá trị đang ở đầu, và thứ tự các nút cũ không đổi. Phương án "It inserts new node with value x after the head of the list." đòi chèn vào giữa nút đầu và nút thứ hai, muốn vậy phải viết q.prev = head, q.next = head.next, cập nhật head.next.prev = q rồi head.next = q, và tuyệt đối không được gán lại head; đoạn mã đã cho vừa đặt q.prev = null vừa dịch head nên không thể là phép chèn sau nút đầu.

Cùng phần 1

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