Suppose a singly linked list of integers is given below and p is a reference to the node with value 3 in the list (i.e. p.info=3): (head) 7 11 6 14 3 9 8 12 (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 = head;
while(f.next != p) f = f.next;
Node q = new Node(x);
q.next = p;
f.next = 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 14 5 3 9 8 12". Danh sách chỉ liên kết một chiều nên không lùi được từ p; vòng lặp while(f.next != p) f = f.next chạy từ head để dừng đúng ở nút đứng liền trước p, tức nút 14. Sau đó q.next = p và f.next = q nối nút 5 vào giữa 14 và 3, nghĩa là chèn ngay trước p. "7 11 6 14 3 5 9 8 12" sai vì đó là chèn sau p, muốn vậy phải viết q.next = p.next rồi p.next = q. "7 11 6 14 3 9 8 12 5" sai vì vòng lặp dừng ở nút trước p, không bao giờ đi tới nút cuối. "7 5 11 6 14 3 9 8 12" sai vì nó ứng với việc dùng ngay f = head mà bỏ qua vòng lặp đi tìm nút trước p. "7 11 6 14 3 9 8 5 12" sai vì vị trí đó đòi p phải trỏ nút 12 chứ không phải nút 3.

Cùng phần 1

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