从排序链表中删除重复节点



我正在尝试从排序的链表中删除重复的节点。我使用的代码是 -

Node* RemoveDuplicates(Node *head)
{
    struct Node *ptr = head;
    int var = ptr->data;
    while(ptr != NULL)
    {
        var = ptr->data;
        if(var == ptr->next->data)
        {
            ptr->next = ptr->next->next;
        else
            ptr = ptr->next;
    }
    return head;
}

忘记free(ptr)语句,除此之外,我想一切都很好,但上面的代码不起作用。当我在网上看到类似的代码但有一个额外的指针时,逻辑中是否有任何问题?

提前谢谢。

if(var == ptr->next->data)

应该是

if (ptr->next != NULL && var == ptr->next->data)

代码中不保证下一个指针不为 null,

相关内容

  • 没有找到相关文章

最新更新