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中用has_key()方法查找键是否存在的教程
May 21 Python
python非递归全排列实现方法
Apr 10 Python
Java及python正则表达式详解
Dec 27 Python
python如何对实例属性进行类型检查
Mar 20 Python
Python之时间和日期使用小结
Feb 14 Python
python 实现交换两个列表元素的位置示例
Jun 26 Python
python基于三阶贝塞尔曲线的数据平滑算法
Dec 27 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
Apr 26 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
May 03 Python
django template实现定义临时变量,自定义赋值、自增实例
Jul 12 Python
python中HTMLParser模块知识点总结
Jan 25 Python
Python Django框架介绍之模板标签及模板的继承
May 27 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
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
2011/01/12 PHP
PHP微信开发之有道翻译
2016/06/23 PHP
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
javascript eval函数深入认识
2009/02/21 Javascript
一组JS创建和操作表格的函数集合
2009/05/07 Javascript
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
javascript解析json数据的3种方式
2014/05/08 Javascript
jQuery通过点击行来删除HTML表格行的实现示例
2014/09/10 Javascript
jQuery拖拽插件gridster使用指南
2015/04/21 Javascript
javascript引用类型之时间Date和数组Array
2015/08/27 Javascript
js中对函数设置默认参数值的3种方法
2015/10/23 Javascript
javascript给span标签赋值的方法
2015/11/26 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
2017/06/16 Javascript
React-intl 实现多语言的示例代码
2017/11/03 Javascript
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
vue.js与后台数据交互的实例讲解
2018/08/08 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
解决vue打包后vendor.js文件过大问题
2019/07/03 Javascript
[02:04]2014DOTA2国际邀请赛 DK一个时代的落幕
2014/07/21 DOTA
Tensorflow 合并通道及加载子模型的方法
2018/07/26 Python
Pytorch之保存读取模型实例
2019/12/30 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
2020/01/17 Python
Python matplotlib修改默认字体的操作
2020/03/05 Python
MAC平台基于Python Appium环境搭建过程图解
2020/08/13 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
拉斯维加斯城市观光通行证:Las Vegas Pass
2019/05/21 全球购物
会计系毕业个人自荐信格式
2013/09/23 职场文书
经销商年会策划方案
2014/05/29 职场文书
运动会演讲稿100字
2014/08/25 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
上下班时间调整通知
2015/04/23 职场文书
周恩来的四个昼夜观后感
2015/06/03 职场文书
python数字类型和占位符详情
2022/03/13 Python