c - 使用函数指针作为参数

标签 c pointers singly-linked-list

我正在尝试使用以下命令将节点添加到链接列表的前面:

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/

相关文章:

java - 如何从 LinkedList 中删除中间节点?

c++ - 单链表时间

c - C 代码的优化

根据用户输入创建可变数量的字符串变量(C语言)

c - 指向结构的指针和指向结构指针数组的指针。 C中的动态内存

c++ - 在 C++ 中将指针转换为数组

c - 链表 C - 当不存在头时创建头

c - 指向二维数组的指针

c - 关于C语法的几个问题

c++ - 使用 lldb 调试器显示指针值