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字符遍历的艺术
Sep 06 Python
教你安装python Django(图文)
Nov 04 Python
Python使用gensim计算文档相似性
Apr 10 Python
Python序列化基础知识(json/pickle)
Oct 19 Python
windows下python安装pip图文教程
May 25 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
Jan 30 Python
基于django 的orm中非主键自增的实现方式
May 18 Python
Numpy中ndim、shape、dtype、astype的用法详解
Jun 14 Python
Tensorflow全局设置可见GPU编号操作
Jun 30 Python
用 python 进行微信好友信息分析
Nov 28 Python
Python实现生成bmp图像的方法
Jun 13 Python
python计算列表元素与乘积详情
Aug 05 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
windows下开发并编译PHP扩展的方法
2011/03/18 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
2013/02/06 PHP
php中判断数组是一维,二维,还是多维的解决方法
2013/05/04 PHP
在openSUSE42.1下编译安装PHP7 的方法
2015/12/24 PHP
php5.4传引用时报错问题分析
2016/01/22 PHP
使用jscript实现二进制读写脚本代码
2008/06/09 Javascript
jquery判断单个复选框是否被选中的代码
2009/09/03 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
向当前style sheet中插入一个新的style实现方法
2013/04/01 Javascript
基于jQuery实现文本框缩放以及上下移动功能
2014/11/24 Javascript
JS简单编号生成器实现方法(附demo源码下载)
2016/04/05 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
js入门之Function函数的使用方法【新手必看】
2016/11/22 Javascript
vue.js中Vue-router 2.0基础实践教程
2017/05/08 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
2017/12/20 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
vue中轮训器的使用
2019/01/27 Javascript
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
openlayers4.6.5实现距离量测和面积量测
2020/09/25 Javascript
pandas数据分组和聚合操作方法
2018/04/11 Python
python 平衡二叉树实现代码示例
2018/07/07 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
Atom Python 配置Python3 解释器的方法
2019/08/28 Python
Python 元组拆包示例(Tuple Unpacking)
2019/12/24 Python
使用python接受tgam的脑波数据实例
2020/04/09 Python
Python如何给你的程序做性能测试
2020/07/29 Python
Python Flask异步发送邮件实现方法解析
2020/08/01 Python
详解python第三方库的安装、PyInstaller库、random库
2021/03/03 Python
蔻驰英国官网:COACH英国
2020/07/19 全球购物
*p++ 自增p 还是p所指向的变量
2016/07/16 面试题
武汉东之林科技有限公司机试
2013/09/17 面试题
踏青活动策划方案
2014/08/19 职场文书
小学生作文评语集锦
2014/12/25 职场文书
车间质检员岗位职责
2015/04/08 职场文书
MySQL 亿级数据导入导出及迁移笔记
2021/06/18 MySQL
ajax请求前端跨域问题原因及解决方案
2021/10/16 Javascript