题解 | #输出单向链表中倒数第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;
}
查看10道真题和解析