gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 06:09:45 25 4
gpt4 key购买 nike

addAtBegin 有什么问题?将新创建的 node 分配给 start 后,该列表似乎是正确的,但是当控制权返回到 main 时,新值没有保存。

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 应该是指向指针的指针。

关于c - 如何在链表的开头插入节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1989185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com