BJFUOJ:查找链表中倒数第k个结点
#include<bits/stdc++.h>
using namespace std;
typedef struct Lnode{
int num;
struct Lnode *next;
}Lnode,*Linklist;
void InitLinklist(Linklist &l){
l = new Lnode;
l->next = NULL;
}
void CreatLinklist(Linklist &l,int n){
Linklist r = l,p;
for(int i=1;i<=n;i++){
p = new Lnode;
cin>>p->num;
p->next = r->next;
r->next = p;
r = p;
}
}
void Find(Linklist &l,int k,int n){
k = n - k + 1;
Linklist p = l;
while(k--){
p = p->next;
}
cout<<p->num<<endl;
}
int main(){
while(1){
int n,k;
cin>>n;
if(n==0) break;
Linklist l;
InitLinklist(l);
CreatLinklist(l,n);
cin>>k;
Find(l,k,n);
}
}