Suppose we are considering a singly linked list which is not empty. Select the most correct java code snippet that inserts new node with value x at the tail of the list (the new node will be the last node in the list).

4 phương ánCó giải thích

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: "Node q = new Node(x); q.next = null; tail.next = q; tail = q;". Chèn vào cuối danh sách liên kết đơn cần đủ ba việc: tạo nút mới với next là null để nó thực sự là nút cuối, cho nút cuối hiện tại trỏ tới nó, và cập nhật tail để biến này tiếp tục chỉ đúng nút cuối. Đoạn mã này làm cả ba theo thứ tự an toàn vì nó gắn q vào sau tail cũ trước khi đổi tail. Phương án "Node q = new Node(x); q.next = null;" chỉ tạo nút rồi bỏ đó, không nút nào trong danh sách trỏ tới q nên danh sách không dài thêm. Phương án "tail.next = new Node(x); tail.next = null; tail = tail.next;" gán tail.next hai lần, lần sau ghi null lên chính liên kết vừa tạo nên nút mới bị mất, rồi tail nhận null và không còn chỉ vào nút nào. Phương án "tail.next = new Node(x); tail.next.next = null;" gắn được nút mới nhưng quên cập nhật tail, nên lần chèn sau lại gắn vào nút kề cuối và ghi đè mất nút vừa thêm.

Cùng phần 1

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