C 如何在链表的开头插入节点?

C 如何在链表的开头插入节点?,c,data-structures,linked-list,C,Data Structures,Linked List,addAtBegin有什么问题?将新创建的节点分配给开始后,列表似乎是正确的,但当控件返回到主时,新值不会保存 typedef struct node { int data; struct node *link; }node; node* createList(int data) { node *tempNode=(node*)malloc(sizeof(node)); tempNode->data=data; tempNode->link=

addAtBegin
有什么问题?将新创建的
节点
分配给
开始
后,列表似乎是正确的,但当控件返回到
时,新值不会保存

typedef struct node
{
    int data;
    struct node *link;
}node;

node* createList(int data)
{
    node *tempNode=(node*)malloc(sizeof(node));
    tempNode->data=data;
    tempNode->link=NULL;
    return tempNode;
}

void addAtBegin(node *start,int data)
{
    node *addedNode=(node *)malloc(sizeof(node));
    addedNode->data=data;
    addedNode->link=(start==NULL)?NULL:start;
    start=addedNode;
}

void displayNodes(node *start)
{
    node *startCopy=start;
    while(startCopy!=NULL)
    {
        printf("%d\t",startCopy->data);
        startCopy=startCopy->link;
    }
    printf("\n");
}

int main( )
{   
    node *start=createList(2);
    addAtBegin(start,1);
    displayNodes(start);
    return 0;
}

在我看来,这是另一个列表问题,答案与大多数问题相同-start应该是指向指针的指针。

在我看来,这是另一个列表问题,答案与大多数问题相同-start应该是指向指针的指针。

或者应该返回addedNode,就像createList一样。或者应该返回addedNode,就像createList一样。