m0_73954414 2022-09-30 11:40 采纳率: 57.1%
浏览 36
已结题

单链表删除值重复,想知道哪错🥹

#include "SLinkNode.cpp"
void Dsccf(SLinkNode *&L)
{
SLinkNode *p=L->next,*preq,*q;
while(p->next!=NULL)
{
q=p->next;
if(q->data==p->data)
{
preq=q;
p->next=preq->next;
free(preq);
}
else
{
p=p->next;
q=q->next;
}
}
}
int main()
{
SLinkNode *L;
InitList(L);
ElemType a[]={2,1,0,2,1,0,0,0};
int n=sizeof(a)/sizeof(a[0]);
CreateListR(L,a,n);
printf("线性表:");DispList(L);
Dsccf(L);
printf("线性表:");DispList(L);
DestroyList(L);
}

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2022-09-30 12:44
    关注

    void Dsccf(SLinkNode *&L)函数修改如下,供参考:

    void Dsccf(SLinkNode*& L)
    {
        SLinkNode *p = L->next,  *preq,  *q;
        while (p != NULL)
        {
            preq = p;
            q = p->next;
            while (q) {
                if (q->data == p->data){
                    preq->next = q->next;
                    free(q);
                    q = preq->next;
                }
                else{
                    preq = q;
                    q = q->next;
                }
            }
            p = p->next;
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月8日
  • 已采纳回答 9月30日
  • 创建了问题 9月30日

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程