代码编译通过,却无法实现输出,有没有大佬帮帮这段代码?
#include<iostream>
using namespace std;
typedef struct node{
int data;
struct node* next;
}Node;
// 单链表的初始化
Node* List()
{
Node* head=new Node;
head->next=NULL;
return head;
}
// 数据输入 尾插法
void createlistr(node *head,int n)
{
node *r=head;
node *p;
for(int i=0;i<n;i++)
{
p=new node;
int data;
scanf("%d",&data);
p->data=data;
r->next=p;
r=p;
}
}
//反转算法 双指针
void reverselist(Node *head)
{
if(head == NULL || head->next == NULL)
{
return;
}
Node *beg=head->next;
Node *end=head->next->next;
while(end!=NULL)
{
beg->next=end->next;
end->next=head->next;
//更新指针
head->next=end;
end=beg->next;
}
}
//输出元素
void outputs(Node *head,int n)
{
printf("输出结果为:\n");
Node *p;
p=head->next;
for(int i=0;i<n;i++)
{
printf("%d->",p->data);
p=p->next;
}
}
int main()
{
Node *head1;
head1=List();
printf("请确定你要输入链表的数据个数:\n");
int data=0;
scanf("%d",&data);
createlistr(head1,data);
outputs(head1,data);
reverselist(head1);
printf("逆置后的结果为:\n");
outputs(head1,data);
return 0;
}