python实现获取单向链表倒数第k个结点的值示例


Posted in Python onOctober 24, 2019

本文实例讲述了python实现获取单向链表倒数第k个结点的值。分享给大家供大家参考,具体如下:

#初始化链表的结点
class Node():
  def __init__(self,item):
    self.item = item
    self.next = None
#传入头结点,获取整个链表的长度
def length(headNode):
  if headNode == None:
    return None
  count = 0
  currentNode =headNode
  #尝试了一下带有环的链表,计算长度是否会死循环,确实如此,故加上了count限制 = =||
  while currentNode != None and count <=1000:
    count+=1
    currentNode = currentNode.next
  return count
#获取倒数第K个结点的值,传入头结点和k值
def findrKnode(head,k):
  if head == None:
    return None
  #如果长度小于倒数第K个值,则返回通知没有这么长
  elif length(head)<k:
    print("链表长度没有倒数第"+str(k)+"数")
    return None
  else:
    #设置两个针,一个快,一个慢,都指向头结点
    fastPr = head
    lowPr = head
    count = 0
    #让fastPr先走k个长度
    while fastPr!=None and count<k:
      count+=1
      fastPr = fastPr.next
    #此时fastPr和lowPr同速前进,当fastPr走到尾部,lowPr此处的值正好为倒数的k值
    while fastPr !=None:
      fastPr = fastPr.next
      lowPr = lowPr.next
    return lowPr
if __name__ == "__main__":
  node1 = Node(1)
  node2 = Node(2)
  node3 = Node(3)
  node4 = Node(4)
  node5 = Node(5)
  node6 = Node(6)
  node7 = Node(7)
  node8 = Node(8)
  node9 = Node(9)
  node10 = Node(10)
  node1.next = node2
  node2.next = node3
  node3.next = node4
  node4.next = node5
  node5.next = node6
  node6.next = node7
  node7.next = node8
  node8.next = node9
  node9.next = node10
  print(findrKnode(node1,5).item)

运行结果:

6

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python 中的列表解析和生成表达式
Mar 10 Python
Python的函数的一些高阶特性
Apr 27 Python
Pycharm学习教程(5) Python快捷键相关设置
May 03 Python
python使用TensorFlow进行图像处理的方法
Feb 28 Python
Python双向循环链表实现方法分析
Jul 30 Python
python用列表生成式写嵌套循环的方法
Nov 08 Python
python用fsolve、leastsq对非线性方程组求解
Dec 15 Python
PyQt5组件读取参数的实例
Jun 25 Python
python从list列表中选出一个数和其对应的坐标方法
Jul 20 Python
pycharm重命名文件的方法步骤
Jul 29 Python
Python对象的属性访问过程详解
Mar 05 Python
68行Python代码实现带难度升级的贪吃蛇
Jan 18 Python
python模块导入的方法
Oct 24 #Python
python读取word 中指定位置的表格及表格数据
Oct 23 #Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
Oct 23 #Python
pandas按行按列遍历Dataframe的几种方式
Oct 23 #Python
pandas中遍历dataframe的每一个元素的实现
Oct 23 #Python
python list多级排序知识点总结
Oct 23 #Python
python实现的汉诺塔算法示例
Oct 23 #Python
You might like
Dedecms V3.1 生成HTML速度的优化办法
2007/03/18 PHP
PHP引用(&amp;)各种使用方法实例详解
2014/03/20 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
php实现微信公众号无限群发
2015/10/11 PHP
thinkPHP5.0框架引入Traits功能实例分析
2017/03/18 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
PHP经典设计模式之依赖注入定义与用法详解
2019/05/21 PHP
不间断滚动JS打包类,基本可以实现所有的滚动效果,太强了
2007/12/08 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
setTimeout()与setInterval()方法区别介绍
2013/12/24 Javascript
纯js写的分页表格数据为json串
2014/02/18 Javascript
JavaScript中发布/订阅模式的简单实例
2014/11/05 Javascript
js判断登录与否并确定跳转页面的方法
2015/01/30 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
jQuery Validate表单验证入门学习
2015/12/18 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
2016/03/06 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
微信小程序自定义多选事件的实现代码
2018/05/17 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
浅析vue给不同环境配置不同打包命令
2018/08/17 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
[02:27]DOTA2英雄基础教程 莱恩
2014/01/17 DOTA
Python标准库之随机数 (math包、random包)介绍
2014/11/25 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
2018/06/13 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
2020/06/24 Python
Carter’s官方旗舰店:美国受欢迎的婴童服装品牌
2018/01/21 全球购物
Expedia瑞典官网:预订度假屋、酒店、汽车租赁、机票等
2021/01/23 全球购物
自我鉴定怎么写
2013/12/05 职场文书
信访稳定工作汇报
2014/10/27 职场文书
子女赡养老人协议书
2016/03/23 职场文书
Python安装使用Scrapy框架
2022/04/12 Python