HJ51 输出单向链表中倒数第k个结点
快慢指针 + 尾插法的静态链表
#include <iostream>
using namespace std;
const int N = 1010;
int head, e[N], ne[N], idx;
int tail;
//尾插法
void add(int b)
{
e[idx] = b, ne[idx] = -1, ne[tail] = idx, tail = idx ++;
}
int main() {
int n;
while(cin >> n){
//让tail初始占据0,相当于一个虚拟节点
idx = 1, head = 1, tail = 0;
while(n --){
int x;
cin >> x;
add(x);
}
int k;
cin >> k;
int l = head, f = head;
while(k --) f = ne[f];
while(f != -1) f = ne[f], l = ne[l];
cout << e[l] << endl;
}
return 0;
}
// 64 位输出请用 printf("%lld")