描述
输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针。
正常返回倒数第k个结点指针,异常返回空指针。
输入
1 输入链表结点个数
2 输入链表的值
3 输入k的值
输出:
输出一个整数
示例
输入:
8
1 2 3 4 5 6 7 8
4
输出:
5
代码
#include <iostream>
using namespace std;
struct ListNode {
int val;
ListNode * next;
ListNode (int x) : val(x), next(NULL){};
};
int main() {
int node_num;
while (cin >> node_num) {
// Create node
ListNode *node = new ListNode(0);
ListNode *p = node;
for (int i = 0; i < node_num; i++) {
int data;
cin >> data;
ListNode *q = new ListNode(data);
p->next = q;
p = p->next;
}
int K;
cin >> K;
// Find node;
if (K == 0)
cout << "0" << endl;
else if (K > node_num)
cout << "NULL" << endl;
else {
p = node;
for (int i = 0; i <= node_num - K; i++)
p = p->next;
cout << p->val << endl;
}
}
return 0;
}