史上最强没有之一
struct ListNode* deleteDuplicates(struct ListNode* head) {
    struct ListNode *current = head;

    // 遍历链表
    while (current != NULL && current->next != NULL) {
        if (current->val == current->next->val) {
            // 发现重复,删除下一个节点
            struct ListNode *temp = current->next;
            current->next = current->next->next;
            free(temp); // 释放内存
        } else {
            // 没有重复,移动到下一个节点
            current = current->next;
        }
    }
    
    return head;
}