【发布时间】:2012-03-21 05:34:26
【问题描述】:
我有一个问题,如果我想从链表中删除一个节点,我这样做: 假设:Head 指向第一个节点。
deleteFirstNode(struct node * head)
{
struct node* temp=head;//this line
temp->next=head->next->next;
temp->data=head->next->data;
free(head);
head=temp;
}
1) 这会删除第一个节点吗?
2) 如果是这样,当我释放 head 时,它不会也释放临时指针吗?因为 temp 和 head 都指向这一行中的相同位置(参见代码中“这一行”中的注释)。 如果以上两者都为真,我将如何保留指向列表开头的指针。 ? 非常感谢你。
【问题讨论】: