【发布时间】:2021-11-23 21:32:34
【问题描述】:
我遇到了从未排序的链表中删除重复项的问题。我的代码没有返回我需要的输出。
Node * removeDuplicates( Node *head)
{
Node *cur=head;
Node *prev=NULL;
Node *nextptr;
while(cur!=NULL){
nextptr=cur->next;
cur->next=prev;
prev=cur;
cur=nextptr;
}
head=prev;
Node *temp=head;
while(temp->next!=NULL){
if(temp->data=temp->next->data){
temp->next=temp->next->next;
}
}
return head;
}
给出的链表是5->2->2->4->NULL。
这是用于从未排序的链表中删除重复项的代码。它的返回类型是一个指针。我没有得到所需的输出。所需的输出是5->2->4->NULL,但我的输出只有5。请帮助我正确的代码。
【问题讨论】:
-
您可能想explain to your rubber duck 为什么您的代码无疑是正确的。除了删除重复项之外,该功能还有很多其他功能。
-
你认为
temp->data=temp->next->data会做什么? -
在寻求帮助之前,您可能应该enable and address warnings。您的编译器希望帮助您编写没有错误的代码,并且它的响应速度比互联网上的人更快。
标签: c++ algorithm data-structures linked-list logic