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 socket.error: [Errno 98] Address already in use的原因和解决方法
Aug 25 Python
在PyCharm中实现关闭一个死循环程序的方法
Nov 29 Python
python退出命令是什么?详解python退出方法
Dec 10 Python
Python + Flask 实现简单的验证码系统
Oct 01 Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
Mar 16 Python
python计算Content-MD5并获取文件的Content-MD5值方式
Apr 03 Python
keras 多gpu并行运行案例
Jun 10 Python
python中K-means算法基础知识点
Jan 25 Python
python os.listdir()乱码解决方案
Jan 31 Python
pycharm 的Structure界面设置操作
Feb 05 Python
pytest配置文件pytest.ini的详细使用
Apr 17 Python
PyQt5结合QtDesigner实现文本框读写操作
Jun 11 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
解析htaccess伪静态的规则
2013/06/18 PHP
PHP动态页生成静态页的3种常用方法
2014/11/13 PHP
php实现比较两个字符串日期大小的方法
2015/05/12 PHP
在 Laravel 项目中使用 webpack-encore的方法
2019/07/21 PHP
phpstudy2020搭建站点的实现示例
2020/10/30 PHP
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
2009/06/04 Javascript
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
js 获取、清空input type=&quot;file&quot;的值示例代码
2014/02/19 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
javascript实现简单加载随机色方块
2015/12/25 Javascript
详解微信小程序开发之城市选择器 城市切换
2017/01/17 Javascript
基于JS实现翻书效果的页面切换样式
2017/02/16 Javascript
Three.js获取鼠标点击的三维坐标示例代码
2017/03/24 Javascript
Vue 进阶教程之v-model详解
2017/05/06 Javascript
原生js封装添加class,删除class的实例
2017/11/06 Javascript
在vue中实现简单页面逆传值的方法
2017/11/27 Javascript
Vue实现active点击切换方法
2018/03/16 Javascript
Vue源码探究之虚拟节点的实现
2019/04/17 Javascript
JS实现获取当前所在周的周六、周日示例分析
2019/05/11 Javascript
在Vue中创建可重用的 Transition的方法
2020/06/02 Javascript
vue+element实现图片上传及裁剪功能
2020/06/29 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
python检查字符串是否是正确ISBN的方法
2015/07/11 Python
Python列表切片用法示例
2017/04/19 Python
python中数据爬虫requests库使用方法详解
2018/02/11 Python
python 实现登录网页的操作方法
2018/05/11 Python
利用pyecharts实现地图可视化的例子
2019/08/12 Python
Made in Design英国:设计家具、照明、家庭装饰和花园家具
2019/09/24 全球购物
JPA面试常见问题
2016/11/14 面试题
工程质量承诺书范文
2014/03/27 职场文书
2015年党风廉政建设责任书
2015/01/29 职场文书
党员个人年度总结
2015/02/14 职场文书
Python实现随机生成迷宫并自动寻路
2021/06/13 Python
浅谈redis整数集为什么不能降级
2021/07/25 Redis
Win11更新失败并提示0xc1900101
2022/04/19 数码科技