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 4 3 9 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 = 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 4 5 3 9 8 2". Danh sách là 7, 11, 6, 4, 3, 9, 8, 2 và p trỏ vào nút 3. Vòng while(f.next != p) f = f.next; chạy từ head và dừng khi f là nút 4, tức nút đứng ngay trước p. Sau đó q = new Node(x) với x = 5, q.next = p nối nút mới vào trước 3, rồi f.next = q cho 4 trỏ sang 5. Nút 5 do đó nằm giữa 4 và 3, cho dãy 7, 11, 6, 4, 5, 3, 9, 8, 2. Phương án "7 11 6 4 3 5 9 8 2" là kết quả của chèn SAU p, muốn vậy phải viết q.next = p.next; p.next = q;. Phương án "7 11 6 4 3 9 8 2 5" là chèn vào cuối, cần đi tới tail chứ không dừng ở nút trước p. Phương án "7 5 11 6 4 3 9 8 2" là chèn ngay sau head, tức vòng lặp không chạy lần nào. Phương án "7 11 6 4 3 9 8 5 2" chèn trước nút cuối, không khớp với điều kiện dừng neo vào p.

Cùng phần 1

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