首先,对于链表来说,我们不能像数组一样直接访问,所以我们想到要求倒数第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个节点相关推荐

  1. 求单项链表的倒数第k个节点(c语言)

    求单项链表的倒数第k个节点(只遍历一次) 单向链表求倒数第k个节点我们可以先遍历一遍找出链表的长度,再设置一个指针走(n-k)步可以找到倒数第k个节点. 但是,这需要遍历两次,如果只允许遍历一次我们就 ...

  2. Java数据结构与算法———(10)单链表应用实例,找到单链表中倒数第K个节点

    找到单链表中的倒数第K个节点,并打印输出节点.两段代码,思路都是相似的. 一.代码1 public class SingleLinkedListDemo {public static void mai ...

  3. [数据结构]题海啊,全是水(三)链表中倒数第k个节点、链表的回文结构、链表分割

    这是一个目录 链表中倒数第k个节点 解法一 解法二 链表的回文结构 思路 代码 链表分割 思路 代码 最后 菜鸡大学生的数据结构--刷题篇3 我们的第三题小宝贝儿回归了! 菜鸡大学生明白,笔试oj题目 ...

  4. 递增的整数序列链表的插入_每日算法题 | 剑指offer 链表专题 (5)链表中倒数第k个节点...

    点击上方"Jerry的算法和NLP",选择"星标"公众号 重磅干货,第一时间送达 题目 链表中倒数第k个节点 题目要求 输入一个链表的头结点,从尾到头反过来打印 ...

  5. python代码找到链表的倒数第K个节点并打印

    python代码找到链表的倒数第K个节点并打印 在计算机科学中,链表是数据元素的线性集合,其顺序不是由它们在内存中的物理位置决定的.相反,每个元素指向下一个元素.它是一种数据结构,由一组节点组成,这些 ...

  6. 剑指offer面试题15:链表中倒数第K个节点

    题目:输入一个链表,输出该链表的倒数第K个节点.为了符合大多数人的习惯,本题从1开始计数,即链表尾节点是倒数第一个节点. 解题思路: 解法一:一般情况下,单向链表无法从后一个节点获取到它前面的节点,可 ...

  7. 【剑指offer - C++/Java】14、链表中倒数第k的节点

    在线题目链接:链表中倒数第k的节点 文章目录 1 题目描述 2 题目分析 2.1 Java代码 2.2 C++代码 3 总结 1 题目描述 输入一个链表,输出该链表中倒数第k个结点. 2 题目分析 这 ...

  8. 22 链表中倒数第k个节点

    22 链表中倒数第k个节点 为了实现只遍历一次就能找到倒数第kkk个节点,我们可以定义两个指针.第一个指针从链表的头指针开始遍历向前走k−1k-1k−1步,第二个指针保持不动:从第kkk步开始,第二个 ...

  9. 剑指offer:面试题22. 链表中倒数第k个节点

    题目:链表中倒数第k个节点 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点.例如,一个链表有6个节点,从头节点开始,它们的值依次是1 ...

最新文章

  1. 如何评价创作歌手的业务能力?试试让NLP帮你分析一下
  2. springboot actuator监控笔记
  3. python中那些鲜为人知的功能特性
  4. 4.2 前向和反向传播
  5. Windows 10 上强制Visual Studio以管理员身份运行
  6. hfs文件服务器如何上传文件,hfs文件服务器linux
  7. 海康威视摄像头web端开发
  8. python学习笔记30(利用turtle绘制最基本的几何图形)
  9. JSON与聚合数据不解之缘二
  10. 2017第15届中国(武汉)国际汽车服务产业博览会会刊(参展商名录)
  11. 0xc000007b应用程序无法正常启动解决方案(亲测有效)
  12. 一份较详细的MS服务
  13. 京东商品价格获取的三种方式
  14. 爬虫项目——Scrapy爬取Boss直聘
  15. 为什么在室内4G信号会变弱
  16. 量化交易入门----双均线策略
  17. k-means算法与Python实践
  18. 计算机组成原理MDRinE是什么,腾讯内容开放平台
  19. 【libuv高效编程】libuv学习超详细教程2——libuv框架初窥
  20. cocos2d 实现全局的加速、减速

热门文章

  1. 记录一次提交开源JAR包到中央仓库的过程
  2. Jetty 基本使用样例
  3. 刘光毅:频谱统一推进5G尽早商用 4G网络向5G平滑演进
  4. 《C语言编程初学者指南》一1.5 使用程序语句
  5. ios UIImage 圆形图片剪切方案
  6. Java面试题技术类一
  7. VM虚拟机中的centos6.3命令行模式添加GCC
  8. 文凭-决定的人生成败?上
  9. [导入]圣诞快乐,快乐圣诞。。。。。。
  10. (原創) 如何將CMOS所擷取的影像傳到PC端? (SOC) (DE2) (TRDB-DC2)