题解 | #输出单向链表中倒数第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来处理它无厘头的输入,连多少组数据都不告诉我