void insertnode(node *s, int a)
{
node *newnode = (struct node*)malloc(sizeof(struct node));
newnode->data = a;
newnode->next = NULL;
if(s==NULL)
{
s = newnode;
}
else
{
node *p = s;
while(p->next!=NULL)
{
p=p->next;
}
p->next = newnode;
}
}
int main()
{
node *s;
insertnode(s,5); //inserting element at the end
insertnode(s,10); //inserting element at the end
return 0;
}
无法理解为什么s仍为null
插入。插入后打印无输出。
请问我对初学者的疑问
答案 0 :(得分:0)
s
为空,因为您的代码s = newnode
会将本地s
设置为一个新值,而该值不会更新{{1 }}。您可以让main()
返回insertnode()
指针(例如,不推荐使用s
),也可以让s = insertnode(s,5)
创建一个sentinel node作为列出您要在第一次调用时传递给main()
的占位符(推荐)。