gpt4 book ai didi

c++ - 如何从单链表中删除每第 10 个节点?

转载 作者:行者123 更新时间:2023-11-27 23:47:06 24 4
gpt4 key购买 nike

我正在为即将进行的测试编写学习指南,我们需要准备好为链表实现一个奇怪的函数,以确保我们真正理解它们。

我们应该创建一个方法:void decimate();删除每 10 个节点。但是,当我在调用 decimate() 后打印列表时,列表保持不变。我错过了什么?

    void decimate()
{

//iterate through the list
//keep a counter
//when counter is 10, remove that node

temp = head;
for(int i = 0; i < 10; i++)
{
temp = temp->next;
}
prev = temp;
prev->next = temp->next;
delete temp;


}

最佳答案

这两行中的第二行什么都不做:


上一个=温度;
prev->next = temp->next;

如果将 prev 设置为 temp 那么 prev.next 已经是 temp.next 不是吗?

编辑。所以我被要求提供一个伪答案,我想这很公平......你需要考虑跳过被删除的节点,你需要指向已删除项目指向的内容而不是保留引用到你删除的那个。

关于c++ - 如何从单链表中删除每第 10 个节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49699031/

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