c++ - 从作为参数 C++ 接收的链表中删除节点
问题描述
我有一个 LinkedList 类,我想编写一个方法来删除作为指针在方法中作为参数接收的节点。
方法结构应如下所示:
void LinkedList: : removeAt(ListElem *arg);
我怎么写这个方法?因为我想不通
解决方案
void LinkedList: : removeAt(LinkedList *ll, ListElem *arg) {
if (!ll->head) return; // ll is your linked list object
if (ll->head == arg) {
struct ListElem *head = ll->head;
ll->head = head->next;
delete head;
return;
}
struct ListElem *current = ll->head;
while (current->next) {
if (current->next == arg) {
struct ListElem *next = current->next;
current->next = next->next;
delete next;
break;
}
current = current->next;
}
}
根据评论更新。谢谢!
推荐阅读
- angular - 将 Apollo 客户端用于 GraphQl 时如何在 watchQuery 中使用 loading 属性
- python-3.x - 如何使用 pyinstaller 将 .py 文件转换为 .exe?
- css - 在 react-redux 中使用三元运算符时将动画应用于替换的内容
- ruby-on-rails - NoMethodError:未定义的方法 `user=' rspec
- python-3.x - 如何构建一个与 autograd 兼容的 Pytorch 模块,该模块可以像图像一样调整张量的大小?
- angular - 在 Angular 应用程序中进行测试
- java - 为秒表添加恢复功能
- node.js - 节点 - 使用 repl.start() 进行诊断 - 访问所有变量等
- c# - 如何在 C# windows 应用程序的队列中发送 Web 请求
- git - 使用 maven-scm-plugin 连接到 GitLab