我正在尝试编写一种方法来从已排序的链表中删除重复节点。如果该方法获得输入链表: 1->1->2->2->3->3 它应该使链表像 1->2->3 。但问题是它返回 1->1->2->3 这意味着第一个重复元素未确定!这是我的代码:
void removeDuplicates(Node head)
{
Node* Current = &head;
while(Current != NULL && Current->next != NULL)
{
while(Current->next != NULL && Current->next->info == Current->info)
Current->next = Current->next->next;
Current=Current->next;
}
}
最佳答案
您按值传递 head,因此您创建了 head 节点的拷贝,并更改了拷贝的下一个字段,而不是原始的 head 指针。你应该通过引用传递指针,所以你的签名应该是这样的
void removeDuplicates(Node* &head)
所以你将修改实际的头指针
关于c++ - 使用简单代码从已排序的链表中删除重复节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49489946/