首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从排序的单向链表中删除重复值

从排序的单向链表中删除重复值
EN

Stack Overflow用户
提问于 2020-08-30 00:48:59
回答 1查看 20关注 0票数 0

我正在尝试从已排序的单向链表中删除重复值。

这是我的代码

SinglyLinkedListNode* removeDuplicates(单链接列表节点*头){

代码语言:javascript
复制
if(head==NULL)
     return head;

  int flag=0;
  SinglyLinkedListNode* p,*q,*temp;

  for(p=head;p->next!=NULL;p=p->next)
      {
          if(flag==1)
             {
                 p=temp;
                 flag=0;
             }

          q=p->next;

          if(q->data==p->data)
             {
                 temp=p;
                 p->next=q->next;
                 free(q);
                 flag=1;
             }
      }

      return head;

}

但是,当单链表为3->3->3->4->5->5->NULL时,代码会失败

EN

回答 1

Stack Overflow用户

发布于 2020-08-30 01:54:54

请尝试这个代码-

代码语言:javascript
复制
void removeDuplicates(SinglyLinkedListNode* head)  
{  
    SinglyLinkedListNode* current = head;  
  
    SinglyLinkedListNode* nextNode;  
      
    if (current == NULL)
    return;  
  
    while (current->next != NULL)  
    {  
    if (current->data == current->next->data)  
    {       
        nextNode = current->next->next;  
        free(current->next);  
        current->next = nextNode;
    }  
    else
    {  
        current = current->next;  
    }  
    }  
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63649512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档