Delete duplicate-value nodes from a sorted linked list

  • + 0 comments

    C

    SinglyLinkedListNode* removeDuplicates(SinglyLinkedListNode* llist) {
        if (llist == 0) return 0;
        SinglyLinkedListNode* node = llist;
        while (node && node->next) {
            if (node->data == node->next->data) {
                SinglyLinkedListNode* next = node->next;
                node->next = next->next;
                free(next);
            } else {
                node = node->next;
            }
        }
        return llist;
    }