问题遇到的现象和发生背景
单链表头插法出现问题
(不知道为什么遍历函数会打印四次相同的地址值)
问题相关代码,请勿粘贴截图
#include <stdio.h>
#include <stdlib.h>
typedef int DataType;
typedef struct node{
DataType data;
struct node *link;
}Node;
Node * initLinkList(){
Node * head=(Node*)malloc(sizeof(Node));//头节点
if(head==NULL){
printf("链表初始化失败\n");
return NULL;
}
head->link=NULL;
return head;
}
Node * creatNode(DataType ele){
Node *newNode=(Node*)malloc(sizeof(Node));
if(newNode==NULL){
printf("节点创建失败\n");
return NULL;
}
newNode->data=ele;
newNode->link=NULL;
return newNode;
}
void headInsert(Node * L ,DataType ele){
Node* newNode=creatNode(ele);
newNode->link=L->link;
L->link=newNode;
}
void ergodic(Node * L){
Node *p=L->link;
while(p){
printf("%d ",L->data);
p=p->link;
}
}
int main()
{
Node* headNode=initLinkList();
headInsert(headNode,3);
headInsert(headNode,4);
headInsert(headNode,5);
headInsert(headNode,6);
ergodic(headNode);
return 0;
}
运行结果及报错内容
我想要达到的结果
能正常的输出6 5 4 3