kkxccy123 2021-10-13 07:19 采纳率: 60%
浏览 181
已结题

单链表删除重复元素(数据结构)😭

int DelSameX(LinkList L)
{ // 将线性表L中重复的元素删除掉,L非递减有序
Node *p; // p指向待处理的链表的第一个结点

Node  *r;  // r指向已处理好的无重复元素链表的最后一个结点

p=L->next;
if ( p==NULL ) return OK;  // 空表返回
r=p;  p=p->next;
while ( p!=NULL )
{



// 请写出循环体,不能再增加新的变量!!



}
return OK;

}

  • 写回答

1条回答 默认 最新

  • qfl_sdu 2021-10-13 07:27
    关注

    你LinkList 结构体的数据是啥?data?

    typedef struct Node 
    {
        int data;
        struct Node* next;
    }*LinkList;
    
    int DelSameX(LinkList L)
    { // 将线性表L中重复的元素删除掉,L非递减有序
        Node *p; // p指向待处理的链表的第一个结点
        Node  *r;  // r指向已处理好的无重复元素链表的最后一个结点
    
        p=L->next;
        if ( p==NULL ) return OK;  // 空表返回
        r=p;  p=p->next;
        while ( p!=NULL )
        {
            // 请写出循环体,不能再增加新的变量!!
            if(p->data == r->data) //data是你结构体的数据部分
            {
                r->next = p->next;
                free(p);
                p = r->next;
            }else
            {
                r = p;
                p = p->next;
            }
    
    
        }
        return OK;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 10月24日
  • 已采纳回答 10月17日
  • 创建了问题 10月13日