#include<iostream>
using namespace std;
typedef struct lnode{ //单链表的节点定义
int data;
struct lnode*next;
}lnode;
void creatlistr(lnode *&c,int a[],int n){ //尾插法建立单链表的函数
lnode *r,*s;
int i;
c=new lnode;
c->next=NULL;
r=c;
for(i=0;i<n;i++){
s=new lnode;
s->data=a[i];
r->next=s;
r=r->next;
}
r->next=NULL;
}
int main(){
int a[100];
int n;
lnode *c;
cout<<"请输入数组元素的数量:"<<endl;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
creatlistr(c,a,n); //调用尾插法建立单链表的函数
cout<<endl;
lnode*fast=c; //下面就是找到单链表的中间节点的操作
lnode*slow=c;
while (fast!= NULL) {
if (fast->next!= NULL) {
fast = fast->next->next;
slow=slow->next;
} else {
fast=fast->next;
slow=slow->next;
}
}
cout<<slow->data<<endl;
return 0;
}