#include<bits/stdc++.h>
using namespace std;
typedef int ElemType;
typedef int status;
typedef struct LNode{
ElemType data;
struct LNode *next;
} *LinkList;
int FindMidNode(LinkList L){
LinkList slow,fast;
slow = fast = L->next;
while(fast->next != NULL){ //跳不出去什么原因
if(fast->next->next!=NULL){ //fast跳两次,low跳一次
fast=fast->next->next;
slow = slow->next;
}
}
return slow->data;
}
status CreateList_L(LinkList &L,int n){
LinkList p,q;
L= new LNode;
L->next = NULL;
q= L;
cout<<"请输入数据" ;
for(int i = 1;i<=n;i++){
p = new LNode;
cin>>p->data;
q->next = p;
q = q->next;
}
q->next = NULL;
return 1;
}
status Outptlist_L(LinkList L){
LinkList p;
p=L->next;
if(p==NULL){
cout<<"该链表为空"<<endl;
}
else {
cout<<"该链表为:"<<endl;
while(p!=NULL){
cout<<p->data<<" ";
p=p->next;
}
}
cout<<endl;
}
int main (){
LinkList L1;
CreateList_L(L1,5);
Outptlist_L(L1);
cout<<"中间值:"<<endl;
cout<<FindMidNode(L1);
return 0;
}