C 언어 2단계 포인터 단일 체인 테이블 노드 삭제
532 단어 2단계 지침
1) Find previous node of the node to be deleted. 2) Changed next of previous node. 3) Free memory for the node to be deleted.
coolshell에서 2단계 포인터 삭제 노드에 대한 linus의 표현을 보았습니다.
void remove_if(node ** head, remove_fn rm)
{
for (node** curr = head; *curr; )
{
node * entry = *curr;
if (rm(entry))
{
*curr = entry->next;
free(entry);
}
else
curr = &entry->next;
}
}