gpt4 book ai didi

c++ - 使用简单代码从已排序的链表中删除重复节点

转载 作者:行者123 更新时间:2023-11-27 22:40:24 25 4
gpt4 key购买 nike

我正在尝试编写一种方法来从已排序的链表中删除重复节点。如果该方法获得输入链表: 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;
}
}

添加了完整代码:https://paste.ubuntu.com/p/hstGyDJrkN/

最佳答案

您按值传递 head,因此您创建了 head 节点的拷贝,并更改​​了拷贝的下一个字段,而不是原始的 head 指针。你应该通过引用传递指针,所以你的签名应该是这样的

void removeDuplicates(Node* &head)

所以你将修改实际的头指针

关于c++ - 使用简单代码从已排序的链表中删除重复节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49489946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com