Xoá các node trùng nhau trong danh sách liên kết

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

Viết hàm Node* (Node* head); xoá các node trùng lặp khỏi danh sách liên kết, chỉ giữ lại lần xuất hiện đầu tiên.
mn giúp em với em viết cả ct thì đúng nhưng viết đoạn code hàm này thì sai ạ.

1 Like

Vậy thì code của bạn đâu rồi?

Nếu bạn không đăng code của bạn lên, topic sẽ tự động khoá sau 24h.

3 Likes
Node* deleteDuplicates(Node* head){
   Node* ptr = head;
   while(ptr != NULL){
       Node *ptr2 = ptr;
       while(ptr2->next != NULL){
           if(ptr->value == ptr2->next->value){
               Node* n = ptr2->next;
               ptr2->next = ptr2->next->next;
               delete(n);
           }
           else ptr2 = ptr2->next;
       }
       ptr = ptr->next;
   }
   return head;
}

Sai thế nào vậy bạn, cho ví dụ về các trường hợp sai của bạn được không?

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?