0

我正在尝试使用以下方法将节点添加到链表的前面:

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;
}

如果添加的节点不是要创建的第一个节点,我对添加的节点将指向什么感到困惑......我想说的是:front->next = list; 但是 list 是 List 类型,所以我确定我会得到一些不兼容的分配错误..这样做的最佳方法是什么?

4

1 回答 1

0
Node *oldHead = list->head;
list->head = front;
front->next =oldHead;

存储旧头,并将其分配给front->next.

要不就

front->next =list->head;
list->head = front;

就足够了。

于 2013-02-27T02:55:56.613 回答