题解 | #输出单向链表中倒数第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个元素。