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数字图像处理之霍夫线变换实现详解
Jan 12 Python
查看django版本的方法分享
May 14 Python
对django中render()与render_to_response()的区别详解
Oct 16 Python
python requests爬取高德地图数据的实例
Nov 10 Python
python绘制散点图并标记序号的方法
Dec 11 Python
django admin.py 外键,反向查询的实例
Jul 26 Python
Python 取numpy数组的某几行某几列方法
Oct 24 Python
关于sys.stdout和print的区别详解
Dec 05 Python
pytorch加载自定义网络权重的实现
Jan 07 Python
Python日志logging模块功能与用法详解
Apr 09 Python
Django中Aggregation聚合的基本使用方法
Jul 09 Python
Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)
Jan 28 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基础知识回顾
2012/08/16 PHP
PHP的Socket网络编程入门指引
2015/08/11 PHP
修改WordPress中文章编辑器的样式的方法详解
2015/12/15 PHP
Javascript下判断是否为闰年的Datetime包
2010/10/26 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
深入解析JavaScript中的变量作用域
2013/12/06 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
jQuery中DOM操作实例分析
2015/01/23 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
轻松搞定jQuery.noConflict()
2016/02/15 Javascript
JavaScript代码性能优化总结篇
2016/05/15 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
微信小程序 location API实例详解
2016/10/02 Javascript
如何给ss bash 写一个 WEB 端查看流量的页面
2017/03/23 Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
2017/04/20 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
2018/10/29 Javascript
Vue触发式全局组件构建的方法
2018/11/28 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
修改layui的后台模板的左侧导航栏可以伸缩的方法
2019/09/10 Javascript
[01:04:08]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第一场 12.16
2020/12/18 DOTA
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
Python urllib、urllib2、httplib抓取网页代码实例
2015/05/09 Python
Python批量重命名同一文件夹下文件的方法
2015/05/25 Python
Python爬豆瓣电影实例
2018/02/23 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
2019/04/01 Python
使用python实现微信小程序自动签到功能
2020/04/27 Python
Python txt文件如何转换成字典
2020/11/03 Python
HTML5新特性之用SVG绘制微信logo
2016/02/03 HTML / CSS
美国诺德斯特龙百货官网:Nordstrom
2016/08/23 全球购物
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
2014乡镇党政班子四风问题思想汇报
2014/09/14 职场文书
2014年社区教育工作总结
2014/12/02 职场文书
2015年小学数学教师工作总结
2015/05/20 职场文书
Python机器学习之KNN近邻算法
2021/05/14 Python