Suppose a singly linked list of integers is given below and p is a reference to the node with value 9 in the list (i.e. p.info=9): (head) 7 11 6 4 3 9 8 21 (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 = 13;
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 3 13 9 8 21". Danh sách liên kết đơn chỉ đi được một chiều, nên muốn chèn trước nút p chứa 9 phải dò từ head bằng vòng while cho tới khi f.next bằng p; khi vòng dừng, f đang ở nút 3. Hai phép gán q.next=p rồi f.next=q đặt nút 13 vào đúng giữa 3 và 9, các liên kết khác không đổi. "7 11 6 4 3 9 8 21 13" là thêm vào cuối, phải đi tới nút 21 và gán next của nó. "7 11 6 4 3 9 13 8 21" là chèn ngay sau p, cần q.next=p.next rồi p.next=q. "7 13 11 6 4 3 9 8 21" là chèn sau nút đầu, chỉ xảy ra nếu vòng while dừng ngay tại head, tức p là nút thứ hai. "13 7 11 6 4 3 9 8 21" là chèn vào đầu danh sách, việc đó buộc phải gán lại head mà đoạn mã không chạm tới head.

Cùng phần 1

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