我试图写出一个功能,从相关名单中删除某些价值,回到整个清单。 然而,我目前的问题是把标明第一个项目的清单,而不是排在名单之后的最后一个项目。
守则希望:
static LISTITEM *removeItem(LISTITEM *list, int n) {
LISTITEM *thislist = list;
while (thislist != NULL) {
if (thislist->value == n) {
LISTITEM *old;
old = thislist;
thislist = thislist->next;
free(old);
}
thislist = thislist->next;
}
return thislist;
}
守则没有犯错误,但当我试图打印打字清单时,在这项职能被称作后,它没有印刷任何东西(原清单是打印的)。
我猜测这个问题,是因为当thislist
>被退回时,由于该回程,目前处于名单上最后一部分。