题解 | #输出单向链表中倒数第k个结点#
输出单向链表中倒数第k个结点
https://www.nowcoder.com/practice/54404a78aec1435a81150f15f899417d
#include <bits/stdc++.h> #include <iterator> using namespace std; struct ListNode { int m_nKey; ListNode* m_pNext; }; int main() { int count, key, k; list<ListNode*> lln; while (cin >> count) { // 注意 while 处理多个 case // 1.正序构造链表 for (int i = 0;i < count;++i) { ListNode* p = new ListNode; cin >> key; p->m_nKey = key; lln.emplace_back(p); } // 2.忽略构造链表前的长度 count // 直接用迭代器定位,获取尾部指针,后退 k 次 cin >> k; auto p = lln.begin(); auto q = p; for (int i = 0;i < k;i++) { q++; } while (q != lln.end()) { p++; q++; } auto x = *p; cout << x->m_nKey << endl; } return 0; } // 64 位输出请用 printf("%lld")