题解 | #输出单向链表中倒数第k个结点#
输出单向链表中倒数第k个结点
https://www.nowcoder.com/practice/54404a78aec1435a81150f15f899417d
#include <iostream>
using namespace std;
struct ListNode {
int value;
ListNode* next;
};
int main() {
int n, value, k;
while (cin >> n) {
// 构建列表
auto head = new ListNode();
ListNode* pre = head;
while (n--) {
auto newNode = new ListNode();
cin >> newNode->value;
pre -> next = newNode;
pre = pre -> next;
}
cin >> k;
pre = head;
ListNode* res = head;
while (k--) {
pre = pre -> next;
}
while (pre != nullptr) {
pre = pre -> next;
res = res -> next;
}
cout << res -> value << endl;
}
return 0;
}
// 64 位输出请用 printf("%lld")
本题的考点在于:
1、如何穿件链表的数据结构。
2、如何构建链表(尤其是构建是的指针的情况)。
3、如何寻找链表的倒数K个元素。

