当列表用作void中的参数时,此代码将删除链表的头部。
void removeNode(node** head) {
(*head) = NULL;
}
如何更改此代码以将用作参数的列表的最后一项设置为NULL?
注意:我从main void调用此方法,并且我希望用作'head'参数的列表将NULL作为其最后一个节点。
答案 0 :(得分:1)
void removeLastNode(node ** head)
{
if(!head || !(*head) || !(*head->next))
return;
node * tmp = *head;
node * new_last;
// Reach the last node
for(;tmp->next;)
{
new_last = tmp;
tmp = tmp->next;
}
freeNode(tmp);
tmp = NULL;
new_last->next = NULL;
}