节点删除的这种实现是否有效,还是我失败了?
void remove_node(node *p)
{
node **i = &node_list;
for (;(*i) != NULL && ((*i) != p); *i = ((*i)->next)) ;
if (*i != NULL)
{
(*i) = (*i)->next;
}
if (p != NULL)
{
free(p);
}
}
顺便说一句,据我所知,在我看到的每个从列表中删除节点的算法中,都有一个变量应该保留前一个指针。这个实现缺少这个......