我正在解决一些指针/链表问题。问题之一是删除列表中的所有节点并将头部指向 NULL。
我的解决方案与给定的答案不同。我是新手,所以我无法弄清楚我的是否以及为什么不起作用。我遇到的主要问题是试图了解结果free(*headRef);
是什么,以及之后是否*headRef
可以共享不同的指针。
我的想法是:因为我已经compliment
指向下一个节点,所以我可以释放*headRef
指向第一个节点的节点(或者,更一般地说,一个赞美之前的节点指向)。然后,我可以指向*headRef
并且compliment
该过程可以继续。
这是我的代码:
void DeleteList(struct node** headRef){
struct node* compliment = *headRef;
while (compliment != NULL){
compliment = compliment->next;
free(*headRef);
*headRef = compliment;
}
*headRef = NULL;
}
假设每个节点都有两个属性:一个 int 和一个->next
指针。