在网上看到很多删除链表中的元素都是指定了位置的,如何删除所有值为x的节点呢,下面以int节点的单链表为例说明:
这是C++类中的实现
void List::removeData(int data)
{
for(Node** cur = &m_head;*cur;)
{
Node* entry = *cur;
if(entry->data == data)
{
*cur=entry->next;
free(entry);
}
else
cur=&entry->next;
}
}
如果直接用函数呢:
void removeData(node** head, int data)
{
for (node** curr = head; *curr; )
{
node * entry = *curr;
if (entry->data==data)
{
*curr = entry->next;
free(entry);
}
else
curr = &entry->next;
}
}