Suppose a doubly 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 1 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
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 1 6 4 3 8 2". Hai lệnh đầu chỉ lấy tham chiếu: p1 là nút 9 ngay sau p chứa 3, p2 là nút 8 đứng sau 9. Lệnh p.next=p2 cho 3 trỏ vượt qua 9 để tới 8, còn p2.prev=p nối lại chiều ngược, nên nút 9 không còn ai trỏ tới và rời khỏi danh sách; các nút khác không bị chạm. "7 1 6 3 9 8 2" xoá nút 4 là nút đứng trước p, muốn vậy phải đi qua p.prev chứ không phải p.next. "7 1 6 4 3 9 2" xoá nút 8, nhưng 8 chính là p2, là nút được nối vào nên nó phải còn. "7 1 4 3 9 8 2" xoá nút 6 ở giữa, không liên quan gì tới ba lệnh chỉ làm việc quanh p. "1 6 4 3 9 8 2" xoá nút đầu, việc đó cần gán lại head mà đoạn mã không hề chạm tới head.

Cùng phần 1

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