Suppose a doubly linked list of integers is given below and p is a reference to the node with value 30 in the list (i.e. p.info=30): (head) 7 11 6 4 30 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
Node p1,p2; p1 = p.next;
 p2 = p1.next;
 p.next = p2;
if(p2!=null) p2.prev=p;

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 30 8 2". Đoạn mã chỉ nối lại con trỏ chứ không cấp phát nút mới: p trỏ vào nút 30 nên p1 = p.next là nút 9 và p2 = p1.next là nút 8; lệnh p.next = p2 cho nút 30 trỏ thẳng sang 8, còn p2.prev = p cho 8 quay lại 30, nên nút 9 không còn ai trỏ tới và rơi khỏi danh sách, để lại 7 11 6 4 30 8 2. Dãy "7 11 6 30 9 8 2" xoá nút 4 đứng trước 30, muốn vậy phải sửa p.prev chứ không phải p.next. Dãy "7 11 6 4 30 9 2" xoá nút 8, tức bỏ chính p2, muốn vậy phải gán p1.next = p2.next. Dãy "7 11 4 30 9 8 2" xoá nút 6, cách 30 hai bước về phía đầu, vùng mà đoạn mã không hề chạm tới. Dãy "11 6 4 30 9 8 2" xoá nút đầu 7, muốn vậy phải dịch chính biến head.

Cùng phần 1

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