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 に答える