function에서 value로 지정된 목록에서 일부 요소를 삭제하고 싶습니다. 함수의 'val'이 목록의 첫 번째 요소와 같으면 내 함수가 작동하지 않습니다. 그렇지 않으면 잘 작동합니다. 어떤 아이디어?단일 링크 된 목록에서 요소 삭제
struct elem {
int val;
struct elem *next;
};
void del(struct elem *list, int val) {
struct elem* tmp = list;
struct elem* prev = NULL;
while (tmp != NULL) {
if (tmp->val == val) {
if (prev == NULL) {
tmp = tmp->next;
free(list);
list = tmp;
} else {
prev->next = tmp->next;
free(tmp);
tmp = prev->next;
}
} else {
prev = tmp;
tmp = tmp->next;
}
}
}
'del()'에서'list'를 수정 했으므로 이중 포인터로 전달하십시오. – CinCout