遍历链表怎么多输出了一部分,哪里出错了?
#include <iostream>
#include<stdio.h>
using namespace std;
typedef int Elemtype;
typedef struct ListNode {
Elemtype val;
struct ListNode* next;
} ListNode,* List;
List create_list(){
int length,value;
List l1=(List)malloc(sizeof(ListNode));
l1->next=NULL;
List t=l1;
if (NULL == l1)
{
cout<<"分配内存失败,程序结束!\n"<<endl;
exit(-1);
}
cout<<"输入链表节点个数:";
cin>>length;
for(int i=0;i<length;i++){
printf("输入第%d个节点的值:",i+1);
cin>>value;
List p=(List)malloc(sizeof(ListNode));
p->next=NULL;
t->val=value;
t->next=p;
t=t->next;
}
return l1;
}
int main()
{
List s;
s=create_list();
// for(int i=0;i<3;i++){
// printf("%d", s->val);
// s= s->next;
// }
while (s!=NULL)
{
printf("%d", s->val);
s= s->next;
}
return 0;
}