我重新安排我的LinkedList节点正确在这个算法
Am I re-arranging my LinkedList nodes properly in this algorithm?
请注意,这是一个赋值。我不需要直接回答这个问题,但我想知道我在哪里搞砸了。我相信我得到了一个无限循环,或者我在某个地方丢失了一个链接。
我的任务是获取一个列表,删除重复项(如果它们不是第一个重复项),然后创建列表的镜像。如果数据只有一个副本,那么使用该节点并移动它,而不是删除它。如果没有重复项,则为其创建一个节点。我不允许使用外部函数来做这个。这意味着大量的指针操作。
我对它的思考过程是,我将有一个锚和循环,以发现是否有任何重复。如果有,将第一个副本移动到列表的末尾,并删除其余的副本。这将创建列表的前半部分作为原始列表,后半部分作为镜像。
还要注意,如果列表为空,则不执行任何操作。如果只有一个节点,复制它并完成。
这是我已经编码,但它似乎有一个问题。当我尝试构建它时,它一直告诉我exe已经停止工作。
编辑#2修改代码,将很快更新。
谁能帮我指出我的错误在哪里?我一直在为这件事绞尽脑汁。看起来我在处理使最后一个节点链接到nullptr时遇到了问题。我已经更新了代码,现在我的问题似乎是我没有处理所有节点。我猜最后一个案子不是我处理的吧?我将继续努力,并检查是否有人指出了我的错误。
由于end
指向列表中的最后一个节点,因此while(anchor != end)
在复制最后一个节点之前导致循环结束。你必须改变循环的退出条件,或者考虑end
是一个特殊的情况,并在循环后复制它。
您可能还想考虑如果列表中的最后一个节点是前一个节点的副本,因此被删除会发生什么。
相关文章:
- 反向给定链表中的K节点
- 如果我只是不访问queue_front节点的子节点,而是将它们推到队列中呢?还是BFS吗
- C++A*算法并不总是在路径中具有目标节点
- 使用 Dijkstra 算法跟踪两个节点之间的最短路径
- 用于在链表中查找节点的算法
- C bST删除节点会破坏排序算法
- 使用 Dijkstra 算法计算两个节点之间的最短路径
- 如何从递归算法返回节点
- 在图算法中,确定是否访问节点的最佳方法是什么?
- 给定一个二叉树,设计一个算法,创建每个深度的所有节点的链表
- 用BFS算法求两节点间的最短路径
- 节点代码或算法的泛型树父
- 在五个节点的图上应用 Dijkstra 算法
- 在循环双向链表的第一个节点之前/之后插入的算法是什么?
- 使用邻接矩阵的 Dijkstra 算法找不到从每个节点到每个其他节点的正确距离/路径
- 有效地向节点发送请求的算法
- 一种寻找图中无边指向外的内部连通节点簇的算法
- 处理大数据网络文件的高效算法,用于计算n个最近节点
- Dijkstra算法中的节点未被保存
- 我重新安排我的LinkedList节点正确在这个算法