我的列表项:
typdef struct sNode
{
struct sNode* next;
myData data;
} tNode;
我希望实现以下 API:
bool removeNode(tNode* node)
{
... // need to fix list and free node
}
问题是我没有要修改的前一个元素。 有什么魔法可以解决吗?
最佳答案
没有。您将不得不从列表的开头遍历以找到前一个节点,这是非常低效的。这是单链表的问题。如果您需要速度快,请使用双向链表(每个节点都有一个next 和一个previous 指针)。
关于c - 从列表中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5995015/