题解 | #输出单向链表中倒数第k个结点#
输出单向链表中倒数第k个结点
https://www.nowcoder.com/practice/54404a78aec1435a81150f15f899417d
#include <iostream>
#include <memory>
using namespace std;
struct ListNode {
int m_nKey;
shared_ptr<ListNode> m_pNext;
ListNode(): m_nKey(-1), m_pNext(nullptr) {}
ListNode(int i): m_nKey(i), m_pNext(nullptr) {}
};
int main() {
int N;
while (cin >> N) {
int temp;
cin >> temp;
shared_ptr<ListNode> head = make_shared<ListNode>(temp);
shared_ptr<ListNode> list = head;
for (int i = 0; i != N - 1; ++i) {
cin >> temp;
shared_ptr<ListNode> t = make_shared<ListNode>(temp);
list->m_pNext = t;
list = t;
}
int k;
cin >> k;
N -= k;
for (int i = 0; i != N; ++i) {
head = head->m_pNext;
}
cout << head->m_nKey<<endl;
}
}
// 64 位输出请用 printf("%lld")
沙比题,还要我用一个while来处理它无厘头的输入,连多少组数据都不告诉我
