华为机试HJ51:输出单向链表中倒数第k个结点
作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
题目描述:
输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针。
链表结点定义如下:
struct ListNode
{int m_nKey;ListNode* m_pNext;
};
正常返回倒数第k个结点指针,异常返回空指针
本题有多组样例输入。
输入描述:
输入说明
1 输入链表结点个数
2 输入链表的值
3 输入k的值
输出描述:
输出一个整数
示例:
输入:
8 1 2 3 4 5 6 7 8 4
输出:
5
解题思路:
这道题偷懒可以用vector数组做,非常简单。
采用题目要求的链表来做:定义ListNode的构造函数,输入链表长度;设置好表头,每次输入数值就new一个节点并连接;输入target,即倒数第target个节点,遍历链表number-target次,即可让指针指向目标节点,输出该节点的值即可。
测试代码:
#include <iostream>
#include <vector>using namespace std;struct ListNode
{int m_nKey;ListNode* m_pNext;// 构造函数ListNode(int x):m_nKey(x),m_pNext(nullptr){};
};int main()
{int number;while(cin>>number){ListNode* head=new ListNode(-1);ListNode* p=head;for(int i=0;i<number;++i){int t;cin>>t;ListNode* tp=new ListNode(t);tp->m_pNext=nullptr;p->m_pNext=tp;p=tp;}int target;cin>>target;if(target<=0||target>number){cout<<0<<endl;continue;}for(int i=0;i<number-target+1;++i){head=head->m_pNext;}cout<<head->m_nKey<<endl;}return 0;
}
华为机试HJ51:输出单向链表中倒数第k个结点相关推荐
- 【编程题目】输入一个单向链表,输出该链表中倒数第 k 个结点
第 13 题(链表): 题目:输入一个单向链表,输出该链表中倒数第 k 个结点.链表的倒数第 0 个结点为链表 的尾指针. 链表结点定义如下: struct ListNode { int m_nKey ...
- 一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针
输入一个单向链表,输出该链表中倒数第k个结点.链表的倒数第0个结点为链表的尾指针 typedef struct _node_t {struct _node_t *next;int data; }Nod ...
- 算法:输入一个链表,输出该链表中倒数第k个结点。
算法:输入一个链表,输出该链表中倒数第k个结点.<剑指offer> 思路加到注释里面了: 1:两个if判断是否返回值为空,首个为空,没有第k个值: 2:for循环找到倒数第k个值,返回为a ...
- 输出该链表中倒数第k个结点
package demo;/* public class headNode {int val;headNode next = null;headNode(int val) {this.val = va ...
- 输出链表中倒数第k个结点
题目描述输入一个链表,输出该链表中倒数第k个结点. 分类:链表 解法1:双指针,第一个指针先走k步,然后第二个指针也开始走,当第一个指针到达末尾,第二个指针也就是到了倒数第k个节点 要注意null链表 ...
- 面试经典:链表中倒数第k个结点?如何从大量数据中找出高频词?
记录两道面试题: 题目描述: 输入一个链表,输出该链表中倒数第k个结点.(单向链表) 拿到这个问题的时候自然而然会想到让链表从末尾开始next K-1 次不就是第K-1个节点了么,但是必须要注意一 ...
- 程序员面试题精选100题(09)-链表中倒数第k个结点[数据结构]
题目:输入一个单向链表,输出该链表中倒数第k个结点.链表的倒数第0个结点为链表的尾指针.链表结点定义如下: struct ListNode { int m_nKey; ...
- [剑指offer]面试题15:链表中倒数第k个结点
面试题15:链表中倒数第k个结点 题目:输入一个链表,输出该链表中倒数第 k 个结点.为了符合大多数人的习惯,本题从1 开始计数,即链表的尾结点是倒数第1 个结点.例如一个链表有6个结点,从头结点开始 ...
- 蓝蓝算法06--输出链表中倒数第k个结点
题目描述 输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针. 链表结点定义如下: struct ListNode {int m_nKey;ListNode* m_pNe ...
最新文章
- Adaptive Execution让Spark SQL更高效更好用
- 计算机与应用教学,教学方法与教学手段
- python数据分析基础教程考试试卷_Python数据分析-自测试卷5
- Java集合Stream类
- C-Power 自主无人海上电力系统有望通过高效能源传输及远程高带宽通信技术,开启新的海上应用
- (飞鸽传书绿色版)网站
- 视网膜New iPad与普通分辨率iPad页面的兼容处理
- [MFC]关于Visual studio 2012的AfxGetMainWnd
- 苹果手机怎么在照片上添加文字_手机照片如何添加花样文字?原来方法这么简单!...
- 官宣!vue.ant.design 低调上线
- win10的虚拟桌面
- 利用word2007插入参考文献
- 六,文件操作(编码,读写文件,with方法)
- 中科大计算机电子信息,中国科学技术大学电子工程与信息科学系
- 数组的正负数分割排序
- Java面向对象编程入门练习:Manager类继承Employee类并实现求得员工平均业绩
- 【三国演义】——诸葛亮
- 信息安全行业从业者----鱼龙混杂也藏龙卧虎
- 如何在Ubuntu 20.04上设置Mattermost
- struts2漏洞监测_全版本struts2漏洞练习
热门文章
- 【docker】关于docker 中 镜像、容器的关系理解
- Exception的妙用
- Apache Hive-1.2.1 Manual Patch and Compile
- wifi的web 认证。
- mysql-cluster 安装篇(1)---简介
- 对CSRF(跨站请求伪造)的理解
- 四行代码创建复杂(无限级)树
- 用Dojo实现Ajax请求:XH“.NET研究”R、跨域、及其他
- 矩阵乘法 算法训练 试题_线性代数入门——矩阵乘法的定义及其意义
- C++类的构造函数、析构函数与赋值函数