九度 链表中倒数第k个结点
/*
* 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 ;
}
九度 链表中倒数第k个结点的更多相关文章
- 剑指Offer - 九度1517 - 链表中倒数第k个结点
剑指Offer - 九度1517 - 链表中倒数第k个结点2013-11-30 02:57 题目描述: 输入一个链表,输出该链表中倒数第k个结点.(hint: 请务必使用链表.) 输入: 输入可能包含 ...
- 【剑指Offer面试题】 九度OJ1517:链表中倒数第k个结点
鲁棒性是指程序可以推断输入是否符合规范要求,并对不和要求的输入予以 合理的处理. 题目链接地址: http://ac.jobdu.com/problem.php?pid=1517 题目1517:链表中 ...
- 【剑指Offer面试编程题】题目1517:链表中倒数第k个结点--九度OJ
题目描述: 输入一个链表,输出该链表中倒数第k个结点. (hint: 请务必使用链表.) 输入: 输入可能包含多个测试样例,输入以EOF结束. 对于每个测试案例,输入的第一行为两个整数n和k(0< ...
- 第22题:链表中倒数第k个结点
题目描述 题目:输入一个链表,输出该链表中倒数第k个结点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点.例如一个链表有6个结点,从头结点开始它们的值依次是1.2.3.4.5 ...
- 剑指offer四:链表中倒数第k个结点
输入一个链表,输出该链表中倒数第K个结点 public class ListNode { int val; ListNode next = null; ListNode(int val) { this ...
- 剑指Offer 链表中倒数第k个结点
题目描述 输入一个链表,输出该链表中倒数第k个结点. 思路: 法1:设置2个指针p,q.p先移动k次,然后pq同时后移,p到链表尾尾的时候,q指向倒数第k个节点. 注意://需要考虑k=0,以 ...
- 【编程题目】输入一个单向链表,输出该链表中倒数第 k 个结点
第 13 题(链表):题目:输入一个单向链表,输出该链表中倒数第 k 个结点.链表的倒数第 0 个结点为链表的尾指针.链表结点定义如下: struct ListNode {int m_nKey;Lis ...
- 输出单向链表中倒数第k个结点
描述 输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针. 链表结点定义如下: struct ListNode { int m_nKey; ListNode* ...
- 找出链表中倒数第 k 个结点
/* 题目:输入一个单向链表,输出该链表中倒数第 k 个结点.链表的倒数第 0 个结点为链表 的尾指针. 链表结点定义如下: struct node { int data; struct node * ...
随机推荐
- Microsoft SQL Server Product Samples:Database
从SQL Server 2005 之后示例数据都为AdventureWorks,需要的通过codeplex网站下载.这样设计的目的应该在于是生产库行不必要的用户以及权限分配. 从以下网址访问http: ...
- C# lazy加载
转自http://www.cnblogs.com/yunfeifei/p/3907726.html 在.NET4.0中,可以使用Lazy<T> 来实现对象的延迟初始化,从而优化系统的性能. ...
- EF架构~过滤导航属性等,拼接SQL字符串
拼接T-SQL串,并使它具有通用性 好处:与服务器建立一次连接,给服务器发一条SQL命令,即可实现 代码如下: 1 /// <summary> 2 /// 构建Insert语句串 3 // ...
- UIMenuController/UIPasteboard(1) 制作一个可以粘贴复制的Label
效果如下: 苹果只放出来了 UITextView,UITextField,webView三个控件的剪贴板,所以我们要自定义可以复制粘贴的控件,首先需要打开UIResponder的两个方法: - ( ...
- 信鸽推送.net 服务端代码
//推送代码 private void send() { #region 安卓推送 XingeApp app = new XingeApp("accessId", "se ...
- spring.net 和 mybatis.net
demo是整合现有的spring.net 和 mybatis.net 完成的控制台程序,需要注意的地方:关于Config文件夹中的config文件的属性设定:同时保证Providers.config默 ...
- CAF(C++ actor framework)使用随笔(send sync_send)(二)
a). 发完就忘, 就像上面anon_send 以及send #include <iostream> #include "caf/all.hpp" #include & ...
- makefile--Unfound symbol
Unfound symbol ,库函数的包含问题或者头文件包含问题 makefile对#的识别度太低了,如果使用了,#它之后的可能就不能识别了,然后会报错的Unfound symbol /////// ...
- linux 配置Socks51
VPN大家耳熟能详,但是socks用到的人比较少,那什么是socks呢?请看第二段或者百度百科,socks分别有4和5两个版本,现在5为主流.工作中经常用VPN访问国外,但是同时国内的速度又慢了,让人 ...
- ACE_linux:读写锁
1.涉及类 ACE_RW_Thread_Mutex //ACE读写锁ACE_Read_Guard //ACE加读锁ACE_Write_Guard //ACE加写锁ACE_Thread_Manager ...