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系列之数据处理编程实例(一)
May 22 Python
Python实现豆瓣图片下载的方法
May 25 Python
Python中list列表的一些进阶使用方法介绍
Aug 15 Python
简单学习Python time模块
Apr 29 Python
利用Python画ROC曲线和AUC值计算
Sep 19 Python
Python selenium抓取微博内容的示例代码
May 17 Python
django框架使用orm实现批量更新数据的方法
Jun 21 Python
AUC计算方法与Python实现代码
Feb 28 Python
解决pycharm不能自动补全第三方库的函数和属性问题
Mar 12 Python
Python爬虫实现自动登录、签到功能的代码
Aug 20 Python
Pycharm编辑器功能之代码折叠效果的实现代码
Oct 15 Python
Django如何创作一个简单的最小程序
May 12 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面向对象自动加载机制原理与用法分析
2016/10/14 PHP
通过代码实例解析PHP session工作原理
2020/12/11 PHP
javascript 动态添加事件代码
2008/11/30 Javascript
jQuery帮助之筛选查找 children([expr])
2011/01/31 Javascript
面向对象的Javascript之三(封装和信息隐藏)
2012/01/27 Javascript
你必须知道的Javascript知识点之&quot;单线程事件驱动&quot;的使用
2013/04/23 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
ES6学习之变量的解构赋值
2017/02/12 Javascript
jquery实现tab键进行选择后enter键触发click行为
2017/03/29 jQuery
nodejs使用express创建一个简单web应用
2017/03/31 NodeJs
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
javascript如何实现create方法
2019/11/04 Javascript
python使用cPickle模块序列化实例
2014/09/25 Python
python列表操作实例
2015/01/14 Python
Python工厂函数用法实例分析
2018/05/14 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
2018/07/13 Python
Python3中_(下划线)和__(双下划线)的用途和区别
2019/04/26 Python
Jacobi迭代算法的Python实现详解
2019/06/29 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
python之PyQt按钮右键菜单功能的实现代码
2019/08/17 Python
python pip安装包出现:Failed building wheel for xxx错误的解决
2019/12/25 Python
Python namedtuple命名元组实现过程解析
2020/01/08 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
python解决OpenCV在读取显示图片的时候闪退的问题
2021/02/23 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
美国购物网站:Clickhere2shop
2021/01/28 全球购物
求职简历的自我评价
2014/01/31 职场文书
企业三严三实学习心得体会
2014/10/13 职场文书
2014年班务工作总结
2014/12/02 职场文书
综合实践活动报告
2015/02/05 职场文书
语文教师个人工作总结
2015/02/06 职场文书
就业推荐表院系意见
2015/06/05 职场文书
在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果(实例代码)
2021/04/22 HTML / CSS
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python