首先按照书上的代码运行没问题,但开始不知道链表头不存储数据信息,所以尝试了直接删除head的方法重写RemoveHead的函数,代码如下:
void RemoveHead(node *head)
{
node *p;
p = head;
head = head->next;
free(p);
}
发现主函数调用出错,调试后发现free函数直接把表头所指内存直接释放掉了,主要是因为主函数head值没有传引用值,所以解决办法就是讲形参值改为引用,即引用指针。RemoveHead(node *&head)