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 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 3 5 9 8 2". Danh sách liên kết đơn không đi lùi được, nên muốn chèn trước nút p chứa 9 phải dò từ đầu bằng vòng while cho tới khi f.next bằng p; lúc 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 5 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 2 5" là thêm vào cuối, phải đi tới nút 2 và gán next của nó. "7 11 6 4 3 9 5 8 2" là chèn ngay sau p, muốn vậy phải gán q.next=p.next rồi p.next=q, khác hẳn hai phép gán trong mã. "7 5 11 6 4 3 9 8 2" là chèn sau nút đầu, chỉ xảy ra nếu vòng while không chạy lần nào và f còn đứng tại head. "5 7 11 6 4 3 9 8 2" là chèn vào đầu, 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ộ đề