数据结构——求单向链表的倒数第K个节点
首先,对于链表来说,我们不能像数组一样直接访问,所以我们想到要求倒数第K个节点首先要知道最后一个节点。
然后从最后一个节点往前数K个。
最后得到想要的值。
但是这是不对的,为什么呢?因为题目给出的是单向链表,只能从前往后找。
所以我们需要换一种思路。
定两个指针。
都从链表的头开始走,一个先走一个后走,先走的比后走的快k步。
然后两个人之后每次都走一步。
当先走的走到终点的时候。
那么后走的所在的位置就是倒数第K个节点的位置了。
下面是代码,这次使用STL库中的list完成。
/** *单向链表求倒数的第K个节点的值 **/ #include <cstdio> #include <cstdlib> #include <iostream> #include <algorithm> #include <list>using namespace std;//定义一个链表 list<int> linklist;//打印链表中的元素 void print_list() {list<int>::iterator linklistIterator;for(linklistIterator=linklist.begin(); linklistIterator!=linklist.end(); linklistIterator++)cout<<*linklistIterator<<" ";cout<<endl; }int main() {//创建链表中的元素 for(int i=1; i<=10; i++)linklist.push_back(i);print_list();//要求寻找到,倒数第3个元素。int k=3;list<int>::iterator iterator_A=linklist.begin();list<int>::iterator iterator_B=linklist.begin();for(int i=1; i<=k; i++)iterator_A++;while(iterator_A != linklist.end()){iterator_A++;iterator_B++;}cout<<"倒数第三个元素是:"<<*iterator_B<<endl;return 0; }
数据结构——求单向链表的倒数第K个节点相关推荐
- 求单项链表的倒数第k个节点(c语言)
求单项链表的倒数第k个节点(只遍历一次) 单向链表求倒数第k个节点我们可以先遍历一遍找出链表的长度,再设置一个指针走(n-k)步可以找到倒数第k个节点. 但是,这需要遍历两次,如果只允许遍历一次我们就 ...
- Java数据结构与算法———(10)单链表应用实例,找到单链表中倒数第K个节点
找到单链表中的倒数第K个节点,并打印输出节点.两段代码,思路都是相似的. 一.代码1 public class SingleLinkedListDemo {public static void mai ...
- [数据结构]题海啊,全是水(三)链表中倒数第k个节点、链表的回文结构、链表分割
这是一个目录 链表中倒数第k个节点 解法一 解法二 链表的回文结构 思路 代码 链表分割 思路 代码 最后 菜鸡大学生的数据结构--刷题篇3 我们的第三题小宝贝儿回归了! 菜鸡大学生明白,笔试oj题目 ...
- 递增的整数序列链表的插入_每日算法题 | 剑指offer 链表专题 (5)链表中倒数第k个节点...
点击上方"Jerry的算法和NLP",选择"星标"公众号 重磅干货,第一时间送达 题目 链表中倒数第k个节点 题目要求 输入一个链表的头结点,从尾到头反过来打印 ...
- python代码找到链表的倒数第K个节点并打印
python代码找到链表的倒数第K个节点并打印 在计算机科学中,链表是数据元素的线性集合,其顺序不是由它们在内存中的物理位置决定的.相反,每个元素指向下一个元素.它是一种数据结构,由一组节点组成,这些 ...
- 剑指offer面试题15:链表中倒数第K个节点
题目:输入一个链表,输出该链表的倒数第K个节点.为了符合大多数人的习惯,本题从1开始计数,即链表尾节点是倒数第一个节点. 解题思路: 解法一:一般情况下,单向链表无法从后一个节点获取到它前面的节点,可 ...
- 【剑指offer - C++/Java】14、链表中倒数第k的节点
在线题目链接:链表中倒数第k的节点 文章目录 1 题目描述 2 题目分析 2.1 Java代码 2.2 C++代码 3 总结 1 题目描述 输入一个链表,输出该链表中倒数第k个结点. 2 题目分析 这 ...
- 22 链表中倒数第k个节点
22 链表中倒数第k个节点 为了实现只遍历一次就能找到倒数第kkk个节点,我们可以定义两个指针.第一个指针从链表的头指针开始遍历向前走k−1k-1k−1步,第二个指针保持不动:从第kkk步开始,第二个 ...
- 剑指offer:面试题22. 链表中倒数第k个节点
题目:链表中倒数第k个节点 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点.例如,一个链表有6个节点,从头节点开始,它们的值依次是1 ...
最新文章
- 如何评价创作歌手的业务能力?试试让NLP帮你分析一下
- springboot actuator监控笔记
- python中那些鲜为人知的功能特性
- 4.2 前向和反向传播
- Windows 10 上强制Visual Studio以管理员身份运行
- hfs文件服务器如何上传文件,hfs文件服务器linux
- 海康威视摄像头web端开发
- python学习笔记30(利用turtle绘制最基本的几何图形)
- JSON与聚合数据不解之缘二
- 2017第15届中国(武汉)国际汽车服务产业博览会会刊(参展商名录)
- 0xc000007b应用程序无法正常启动解决方案(亲测有效)
- 一份较详细的MS服务
- 京东商品价格获取的三种方式
- 爬虫项目——Scrapy爬取Boss直聘
- 为什么在室内4G信号会变弱
- 量化交易入门----双均线策略
- k-means算法与Python实践
- 计算机组成原理MDRinE是什么,腾讯内容开放平台
- 【libuv高效编程】libuv学习超详细教程2——libuv框架初窥
- cocos2d 实现全局的加速、减速