我正在尝试使用以下命令将节点添加到链接列表的前面:
struct Node *addFront(struct List *list, void *data) {
到目前为止,我有以下内容:
struct Node *front = (struct Node *) malloc(sizeof(struct Node)){
if(front == NULL) {
return NULL;
}
front->data = data;
if(list->head == 0) {
list->head = front;
front->next = NULL;
}
else {
list->head = front;
*front->next =*
}
return front;
}
我很困惑,如果添加的节点不是第一个要创建的节点,它会指向什么...我想说的是: 前面->下一个=列表; 但列表是列表类型的,所以我确信我会收到一些不兼容的赋值错误。执行此操作的最佳方法是什么?
最佳答案
Node *oldHead = list->head;
list->head = front;
front->next =oldHead;
存储旧的头部,并将其分配给front->next
。
或者只是
front->next =list->head;
list->head = front;
就够了。
关于c - 使用函数指针作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15103357/