描述
输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针。
链表结点定义如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
详细描述:
接口说明
原型:
ListNode* FindKthToTail(ListNode* pListHead, unsignedint k);
输入参数:
ListNode* pListHead 单向链表
unsigned int k 倒数第k个结点
输出参数(指针指向的内存区域保证有效):
无
返回值:
正常返回倒数第k个结点指针,异常返回空指针
知识点 链表,查找,指针
运行时间限制 10M
内存限制 128
输入
输入说明
1 输入链表结点个数
2 输入链表的值
3 输入k的值
输出
输出一个整数
样例输入 8 1 2 3 4 5 6 7 8 4
样例输出 4
熟悉链表的创建 尾插法和头插法的使用
#include <iostream>
#include <string>
using namespace std;
class ListNode{
public:
int key;
ListNode *next;
};
void initial(ListNode *L, int n){
ListNode *p, *r;
r = L;
int t;
for (int i = 0; i < n; i++){
p = new ListNode();
cin >> t;
p->key = t;
r->next = p;
r = p;
}
r->next = NULL;
}
int main(){
ListNode *head;
head = new ListNode();
int n;
cin >> n;
initial(head, n);
int tem;
int k;
cin >> k;
for (int i = 0; i < n - k +1; i++){
tem = head->key;
head = head->next;
}
cout << tem << endl;
return 0;
}