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中执行shell命令的几个方法小结
Sep 18 Python
python访问类中docstring注释的实现方法
May 04 Python
在类Unix系统上开始Python3编程入门
Aug 20 Python
python通过配置文件共享全局变量的实例
Jan 11 Python
python解析xml简单示例
Jun 21 Python
Python学习笔记之lambda表达式用法详解
Aug 08 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
Oct 01 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
Nov 05 Python
Python Tornado核心及相关原理详解
Jun 24 Python
Django crontab定时任务模块操作方法解析
Sep 10 Python
详解python的异常捕获
Mar 03 Python
numpy array找出符合条件的数并赋值的示例代码
Jun 01 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
关于js与php互相传值的介绍
2013/06/25 PHP
PHP中number_format()函数的用法讲解
2019/04/08 PHP
PHP+mysql防止SQL注入的方法小结
2019/04/27 PHP
用cookies实现的可记忆的样式切换效果代码下载
2007/12/24 Javascript
js图片自动切换效果处理代码
2013/05/07 Javascript
JavaScript实现网页上的浮动广告的简单方法
2013/06/14 Javascript
JS之Date对象和获取系统当前时间详解
2014/01/13 Javascript
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
js获取字符串最后一位方法汇总
2014/11/13 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
2015/05/03 Javascript
jquery简单实现图片切换效果的方法
2015/05/12 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
有关easyui-layout中的收缩层无法显示标题的解决办法
2016/05/10 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
如何给element添加一个抽屉组件的方法步骤
2019/07/14 Javascript
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
webpack+vue.js构建前端工程化的详细教程
2020/05/10 Javascript
[04:45]上海特级锦标赛主赛事第三日TOP10
2016/03/05 DOTA
python实现电子词典
2020/04/23 Python
线程和进程的区别及Python代码实例
2015/02/04 Python
Python ftp上传文件
2016/02/13 Python
python中使用%与.format格式化文本方法解析
2017/12/27 Python
windows下python安装小白入门教程
2018/09/18 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
谈一谈基于python的面向对象编程基础
2019/05/21 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
2019/08/17 Python
Python接口自动化测试框架运行原理及流程
2020/11/30 Python
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
.NET程序员的几道面试题
2012/06/01 面试题
小学岗位竞聘方案
2014/01/22 职场文书
大学生励志演讲稿
2014/04/25 职场文书
党校毕业个人总结
2015/02/28 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers
vue 数字翻牌器动态加载数据
2022/04/20 Vue.js
python如何查找列表中元素的位置
2022/05/30 Python