#include <iostream>
using namespace std;
#include<stdlib.h>
typedef struct node
{
struct node *next;
int val;
node(int m,struct node): val(m),next(NULL)
{}
}Node;
Node* Create() //尾插法创建单链表
{
Node *p=NULL,*q=NULL,*head=NULL;
p=(Node *)malloc(sizeof(Node));
p->next=NULL;
int flag =0;
while(1==scanf("%d",&(p->val)))//当输入的字符不是数字时 循环结束
{
flag =1;
if(head==NULL)
{
head = p;
}
else
{
q->next=p;
}
q=p;
p=(Node *)malloc(sizeof(Node));
p->next=NULL;
}
if(flag ==0) //说明一个节点也没有
return NULL;
free(p);
p=NULL;
q->next=NULL;
return head;
}
Node* Find_k_Node( Node *head,int k)
{
Node *slow=head,*fast=head;
if(head==NULL||k<=0)
return NULL;
for(int i=0;i<k-1;i++)
{
if(fast->next!=NULL)
fast=fast->next;
else
return NULL;
}
while(fast->next!=NULL)
{
slow=slow->next;
fast=fast->next;
}
return slow;
}
//功能测试: 由用户自己输入数字 以非数字字符结束
void main()
{
Node *head = Create();
Node *p =Find_k_Node(head,0);
if(p!=NULL)
cout<<p->val<<endl;
}