如何删除链表中所有出现的值
C++: How to remove all occurrences of a value in a linked list
我目前正在尝试研究链表在c++中的工作方式,并且我遇到了在链表中删除某个值的主题。我知道如何删除一个特定值的第一个实例,这没有问题。然而,我不知道如何删除链表中某个值的所有实例。我可以看到如何删除列表开头和中间值的任何实例,但是一旦l->next是一个nullptr,我就会陷入困境。如果l->next是一个nullptr,那么我如何将指针从值之前重定向到要删除的值之后的东西?
如果这是一个重复的问题,我很抱歉;如果是这种情况,我将删除它为了删除一个节点,你确实使它的指针无效,所以为了能够继续迭代列表,你在删除之前保存下一个指针:
while(node->next != node_I_want_to_remove){
node = node->next;
}
Node* tmp = node->next->next; // save the next
remove(node->next);
node->next = tmp; // attach the two ends of the list and keep iterating
相关文章:
- C++ 从链表中删除给定整数的倍数
- C++ 从链表中删除项目时出现问题
- 双向链表 - 无法删除第一个节点
- 双链表堆栈删除函数不起作用
- 以递归方式从链表中删除节点
- 从链表中删除值/删除未动态分配的值
- 如何通过其持有的数据从链表中删除某个节点?
- 链表.如何删除列表中的第一个节点?
- 从单向链表中删除第二大元素
- 编写递归算法以从链表中删除元素.编写递归算法以将元素添加到链表中
- 如何从链表中删除节点
- 在链表中删除该节点时,Node* 接下来会发生什么情况
- 从双循环链表中删除所有具有相同值的元素
- C++ 双链表的删除前端函数
- 使用类从双向链表中删除节点
- 如何从链表中删除这些节点
- 编写一个代码,该代码在给定的链表中将删除具有奇数值的元素
- 在链表末尾删除
- 尝试从链表中删除节点时出现分段错误
- 从双向链表末尾删除节点时出现分段错误