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 初始化多维数组代码
Sep 06 Python
python的Template使用指南
Sep 11 Python
跟老齐学Python之用Python计算
Sep 12 Python
python开发之tkinter实现图形随鼠标移动的方法
Nov 11 Python
Django rstful登陆认证并检查session是否过期代码实例
Aug 13 Python
利用pyshp包给shapefile文件添加字段的实例
Dec 06 Python
python飞机大战pygame碰撞检测实现方法分析
Dec 17 Python
Python双链表原理与实现方法详解
Feb 22 Python
keras使用Sequence类调用大规模数据集进行训练的实现
Jun 22 Python
python中selenium库的基本使用详解
Jul 31 Python
Python命令行参数定义及需要注意的地方
Nov 30 Python
教你使用一行Python代码玩遍童年的小游戏
Aug 23 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
phpmyadmin 常用选项设置详解版
2010/03/07 PHP
php后台多用户权限组思路与实现程序代码分享
2012/02/13 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
phpnow php探针环境检测代码
2014/11/04 PHP
php可应用于面包屑导航的递归寻找家谱树实现方法
2015/02/02 PHP
jQuery 源码分析笔记(6) jQuery.data
2011/06/08 Javascript
JS 控件事件小结
2012/10/31 Javascript
用Jquery.load载入页面实现局部刷新
2014/01/22 Javascript
jQuery中的height innerHeight outerHeight区别示例介绍
2014/06/15 Javascript
javascript 控制input只允许输入的各种指定内容
2014/06/19 Javascript
jQuery+ajax+asp.net获取Json值的方法
2016/06/08 Javascript
jQuery Select下拉框操作小结(推荐)
2016/07/22 Javascript
JS 拼凑字符串的简单实例
2016/09/02 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
ES6中Class类的静态方法实例小结
2017/10/28 Javascript
基于iScroll实现内容滚动效果
2018/03/21 Javascript
JavaScript实现的反序列化json字符串操作示例
2018/07/18 Javascript
实例分析编写vue组件方法
2019/02/12 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
2020/01/16 Javascript
python3访问sina首页中文的处理方法
2014/02/24 Python
python 截取 取出一部分的字符串方法
2017/03/01 Python
Python实现连接postgresql数据库的方法分析
2017/12/27 Python
python3 requests中使用ip代理池随机生成ip的实例
2018/05/07 Python
django 多数据库配置教程
2018/05/30 Python
Python 操作 ElasticSearch的完整代码
2019/08/04 Python
使用python3 实现插入数据到mysql
2020/03/02 Python
一款利用css3的鼠标经过动画显示详情特效的实例教程
2014/12/29 HTML / CSS
清洁工岗位职责
2014/01/29 职场文书
秦兵马俑教学反思
2014/02/07 职场文书
请假条格式范文
2014/04/10 职场文书
行政人事专员岗位职责
2015/04/07 职场文书
入伍通知书
2015/04/23 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
python 网络编程要点总结
2021/06/18 Python
MySQL索引是啥?不懂就问
2021/07/21 MySQL