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实现超简单端口转发的方法
Mar 13 Python
Python ValueError: invalid literal for int() with base 10 实用解决方法
Jun 21 Python
使用Python的PIL模块来进行图片对比
Feb 18 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
May 28 Python
Python中Django发送带图片和附件的邮件
Mar 31 Python
python爬虫_微信公众号推送信息爬取的实例
Oct 23 Python
基于Django用户认证系统详解
Feb 21 Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
Aug 05 Python
python爬虫超时的处理的实例
Dec 19 Python
Python实现网站表单提交和模板
Jan 15 Python
Django自关联实现多级联动查询实例
May 19 Python
一小时学会TensorFlow2之基本操作2实例代码
Sep 04 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 短链接算法收集与分析
2011/12/30 PHP
解析php根据ip查询所在地区(非常有用,赶集网就用到)
2013/07/01 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
PHP跨平台获取服务器IP地址自定义函数分享
2014/12/29 PHP
Yii2基于Ajax自动获取表单数据的方法
2016/08/10 PHP
php微信开发接入
2016/08/27 PHP
使用PHP开发留言板功能
2019/11/19 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
javascript 操作文件 实现方法小结
2009/07/02 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
60个很实用的jQuery代码开发技巧收集
2014/12/15 Javascript
JavaScript的jQuery库中ready方法的学习教程
2015/08/14 Javascript
JS+CSS实现下拉列表框美化效果(3款)
2015/08/15 Javascript
学习JavaScript设计模式之状态模式
2016/01/08 Javascript
BootStrap和jQuery相结合实现可编辑表格
2016/04/21 Javascript
如何解决vue与传统jquery插件冲突
2017/03/20 Javascript
Vue 解决通过this.$refs来获取DOM或者组件报错问题
2020/07/28 Javascript
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
Python 12306抢火车票脚本 Python京东抢手机脚本
2018/02/06 Python
Django中的forms组件实例详解
2018/11/08 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
关于前端上传文件全面基础扫盲贴(入门)
2019/08/01 HTML / CSS
AmazeUI 网格的实现示例
2020/08/13 HTML / CSS
英国马莎百货官网:Marks & Spencer
2016/07/29 全球购物
澳大利亚宠物食品和药物在线:Jumbo Pets
2018/03/24 全球购物
数据库测试通常都包括哪些方面
2015/11/30 面试题
2014年秋季开学寄语
2014/08/02 职场文书
高中美术教师事迹材料
2014/08/22 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
2014年生产管理工作总结
2014/12/23 职场文书
小学语文继续教育研修日志
2015/11/13 职场文书
学校就业保障协议书
2019/06/24 职场文书
python tkinter模块的简单使用
2021/04/07 Python