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脚本实现查找webshell的方法
Jul 31 Python
浅析Python中元祖、列表和字典的区别
Aug 17 Python
Python实现屏幕截图的两种方式
Feb 05 Python
python写一个md5解密器示例
Feb 23 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
Jun 28 Python
Python 获取ftp服务器文件时间的方法
Jul 02 Python
Django框架视图函数设计示例
Jul 29 Python
Python中logging日志的四个等级和使用
Nov 17 Python
python日志通过不同的等级打印不同的颜色(示例代码)
Jan 13 Python
python 实现定时任务的四种方式
Apr 01 Python
python通配符之glob模块的使用详解
Apr 24 Python
opencv检测动态物体的实现
Jul 21 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
ThinkPHP中使用ajax接收json数据的方法
2014/12/18 PHP
详解 PHP加密解密字符串函数附源码下载
2015/12/18 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
2017/06/09 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
2019/05/28 PHP
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
JavaScript中Cookie操作实例
2015/01/09 Javascript
JavaScript中reduce()方法的使用详解
2015/06/09 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
前端jquery部分很精彩
2016/05/03 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
Node 自动化部署的方法
2017/10/17 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
原生JS实现图片懒加载之页面性能优化
2019/04/26 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
vue组件添加事件@click.native操作
2020/10/30 Javascript
Python实现优先级队列结构的方法详解
2016/06/02 Python
python之从文件读取数据到list的实例讲解
2018/04/19 Python
不到20行代码用Python做一个智能聊天机器人
2019/04/19 Python
python爬虫 urllib模块发起post请求过程解析
2019/08/20 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
2020/02/12 Python
python 实现仿微信聊天时间格式化显示的代码
2020/04/17 Python
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
英国的潮牌鞋履服饰商店:size?
2019/03/26 全球购物
大唐面试试题(CPU,UNIX等等)
2012/01/11 面试题
简历自荐信
2013/12/02 职场文书
财务人员担保书
2014/05/13 职场文书
电子信息专业应届生自荐信
2014/06/04 职场文书
2014大学生学生会工作总结
2014/12/19 职场文书
向女朋友道歉的话
2015/01/20 职场文书
自我评价优缺点范文
2015/03/11 职场文书
2015中学政教处工作总结
2015/07/22 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python
Python使用PyYAML库读写yaml文件的方法
2022/04/06 Python