九度 链表中倒数第k个结点
2024-10-14 23:32:30
/*
* a.cpp
*
* Created on: 2013-10-7
* Author: wangzhu
*/ #include<cstdio>
#include<iostream>
using namespace std;
struct Node {
int key;
Node* next;
}; void addToHead(Node* root, int val) {
Node* tempNode = root->next; Node* node = new Node;
node->key = val;
node->next = tempNode; root->next = node;
} void addToTail(Node* root, int val) {
Node* node = new Node;
node->key = val;
node->next = NULL;
if (root->next == NULL) {
root->next = node;
} else {
Node* tempNode = root->next;
while (tempNode->next != NULL) {
tempNode = tempNode->next;
}
tempNode->next = node;
}
} void printHead(Node* node, int k) {
for (int i = ; i < k; i++) {
node = node->next;
}
printf("%d\n", node->key);
} void printTail(Node* node, int k) {
Node* firstNode = node;
Node* secondNode = node;
for (int i = ; i < k; i++) {
firstNode = firstNode->next;
}
while (firstNode->next != NULL) {
firstNode = firstNode->next;
secondNode = secondNode->next;
}
printf("%d\n", secondNode->key);
}
int main() {
freopen("data.in", "r", stdin);
Node* root;
int n, k, val;
while (~scanf("%d%d", &n, &k)) {
root = new Node;
root->next = NULL;
for (int i = ; i < n; i++) {
scanf("%d", &val);
//addToHead(root, val);
addToTail(root,val);
}
if (n == || k == || n < k) {
printf("NULL\n");
} else {
//printHead(root->next, k);
printTail(root->next,k);
}
}
return ;
}
最新文章
- JS、JQuery和ExtJs的跨域处理
- JavaScript进阶(二)
- COJ968 WZJ的数据结构(负三十二)
- Android 通用流行框架大全
- Java基础(7):二维数组初始化时需要注意的问题
- Young不等式的一个新证明
- windows store app promise
- MyEclipse-java读取jxl的时候报错OutOfMemoryError
- Boolean类源码分析
- 【iOS开发-66】QQ设置界面的案例:利用storyboard开发静态的tableView界面,核心是Static Cells
- GIMP也疯狂之动态图的制作(一)
- 让你能看懂的 JavaScript 闭包
- .net解析csv(C#导表工具)
- MySQL各类SQL语句的加锁机制
- Retrofit GreenDao开发中遇到的坑
- nginx负载均衡后端tomcat无法加载js资源
- MongDB-基础
- (3.14)mysql基础深入——mysql 日志分析工具之pt-querty-digest【待完善】
- 关于PHP写的投票网站之刷票风云
- 如何自定义CollectionView中每个元素的大小和间距