题解 | #输出单向链表中倒数第k个结点#
输出单向链表中倒数第k个结点
https://www.nowcoder.com/practice/54404a78aec1435a81150f15f899417d
在打印 倒数第k个节点时需要注意,虽然是说最后一个节点指向了nullptr,但是前面包含了下标为0的节点,所以倒数的节点可以就是第 n - k 个节点。
注意一下,链表的初始化问题,其他的就没啥知识点了。
#include <iostream> using namespace std; typedef struct ListNode { int val; ListNode *next; ListNode() : val(0), next(nullptr) {} ListNode(int x) : val(x), next(nullptr) {} ListNode(int x, ListNode *next_) : val(x), next(next_) {} }ListNode; void Print_list(ListNode *head, int n, int k) { for (int i = 0; i < n; i++) { if (i == k) { cout << head->val << endl; } else { head = head->next; } } } void FanHuiJieDian() { int n = 0, k = 0, num = 0; while (cin >> n) { ListNode *head = new ListNode(-1); ListNode *cur = head; int len = n; while (len--) { cin >> num; ListNode *temp = new ListNode(num); cur->next = temp; cur = cur->next; } cin >> k; Print_list(head->next, n, n - k); } } int main() { FanHuiJieDian(); return 0; }