REMOVEDUPLICATES

Xem dạng PDF

Gửi bài giải

Điểm: 0,01 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho một danh sách liên kết đơn, trong đó mỗi nút được mô tả bởi cấu trúc:

struct Node {
    int data;
    Node *next;
};

Danh sách được biểu diễn bởi con trỏ head, trỏ tới nút đầu tiên; danh sách kết thúc khi trường next của nút cuối cùng có giá trị NULL.

Nhiệm vụ của bạn là loại bỏ các phần tử trùng lặp trong danh sách sao cho:

  • Nếu một giá trị xuất hiện nhiều lần,

  • Chỉ giữ lại nút xuất hiện đầu tiên (tính theo vị trí trong danh sách),

  • Mọi nút phía sau có cùng giá trị đều phải bị xóa.

Ví dụ: danh sách 5 → 2 → 3 → 2 → 4 → 3 → NULL sẽ trở thành 5 → 2 → 3 → 4 → NULL.

Để thực hiện điều này, bạn cần hoàn thiện một hàm trong mã nguồn của giám khảo (xem template dưới đây).

#include "judgement.h"
// Thư viện này chứa sẵn struct Node và các logic kiểm tra

// Được phép khai báo thêm hàm/biến/thư viện ở đây nếu cần

void removeDuplicates(Node *&head) {
    // Hoàn thiện hàm này
}

Thí sinh không được viết hàm main, không được nhập/xuất dữ liệu. Tệp judgment.h sẽ tự động gọi hàm của thí sinh với dữ liệu phù hợp và quản lý việc nhập xuất.

Input

Output

Sample Input 1

6
1 2 2 4 2 6

Sample Output 1

password: 4408904077780410145
1 2 4 6

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.