【发布时间】:2014-04-07 16:59:35
【问题描述】:
我已经编写了一个链表代码来在节点中插入一个元素。但问题是当我想使用函数插入第一个元素时,输出为空。但是当我在主函数中插入第一个元素时(见注释行),它给出了正确的输出。如何解决? 这是我的 C 代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct node{
int val;
struct node *next;
}node;
void print(node *head){
if(tem == NULL){
printf("List is Empty\n");
return;
}
node *tem= head;
while(tem != NULL){
printf("%d ", tem->val);
tem= tem->next;
}
}
void insert(node *head, int val){
if(head == NULL){
node *tem= malloc(sizeof(node*));
tem->val= val;
tem->next= NULL;
head= tem;
return;
}
node *tem= head;
while(tem->next != NULL){
tem= tem->next;
}
tem->next= malloc(sizeof(node*));
tem->next->val = val;
tem->next->next= NULL;
}
int main()
{
node *head= NULL;
/*
head = malloc(sizeof(node*));
head->val= 5;
head->next= NULL;
*/
insert(head, 15);
print(head);
return 0;
}
谢谢
【问题讨论】:
标签: c linked-list singly-linked-list insertion