Suppose a singly linked list of integers is given below: (head) 7 10 6 4 2 13 8 3 (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 != tail) f = f.next;
Node q = new Node(x);
q.next = tail;
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 10 6 4 2 13 8 5 3". Vòng lặp while(f.next != tail) f = f.next chạy từ head và dừng ở nút đứng liền trước nút cuối, tức nút 8. Sau đó q.next = tail và f.next = q khâu nút mới mang 5 vào giữa 8 và nút cuối 3, nên 5 nằm ở vị trí kế cuối. "7 10 6 4 2 13 8 3 5" sai vì chèn sau nút cuối phải viết tail.next = q rồi dời tail, còn ở đây q.next vẫn trỏ về nút cuối. "5 7 10 6 4 2 13 8 3" sai vì đoạn mã không ghi lại head nên đầu danh sách giữ nguyên là 7. "7 5 10 6 4 2 13 8 3" sai vì vị trí đó ứng với việc dùng ngay f = head mà bỏ qua vòng lặp đi tìm nút trước nút cuối. "7 10 6 4 2 13 5 8 3" sai vì nó chèn trước nút 8, muốn vậy vòng lặp phải dừng ở nút 13 chứ không phải nút 8.

Cùng phần 1

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