【发布时间】:2013-08-29 15:36:50
【问题描述】:
我在 C 中实现了一个带有 Pop 函数的 Linked-List:
Node * pop (Node * head) {
Node * temp = head;
printf("Temp is: %s\n", temp->val);
if (head->next != NULL) {
*head = *head->next;
}
printf("Temp is: %s\n", temp->val);
return temp;
}
当我弹出时的输出会是这样的:
Temp is: node1 value
Temp is: node2 value
也就是说,当我分配*head = *head->next时,temp变成了temp->next。
那么如何获取当前head 的值并将其返回,同时还将链接列表的头部移动到head->next?
执行head = head->next 不会删除对第一个节点的引用。 (即当我打印列表时,第一个节点仍然存在)。
【问题讨论】:
标签: c pointers linked-list return