剑指offer之链表中倒数第k个结点(Python)
来源:互联网 发布:淘宝网哪里写招聘 编辑:程序博客网 时间:2024/06/17 12:36
题目描述
输入一个链表,输出该链表中倒数第k个结点。
思路1:这题用Python并不难,主要是利用Python的append完成所有结点的保存。
代码如下:
注意:在function使用return返回list[-k]结点时,并不是返回结点的val,所以使用print函数打印时,本地编译器只是出现“<__main__.ListNode instance at 0x000000000605D108>”类似的输出。
思路2:将链表头赋给两个新指针P1和P2,让指针P1先走k步,然后两个指针同时走,等P1走完,此时P2所指向的结点即为倒数第k个结点。
# -*- coding: utf-8 -*-"""Created on Sun Oct 15 19:04:13 2017@author: gb_xiaoMail: mingliumengshao@163.com""""""题目描述:输入一个链表,输出该链表中倒数第k个结点。"""class ListNode(): def __init__(self, x): self.val = x self.next = None def CreateList(n): if n == 0: return None if n ==1: return ListNode(1) else: listNode = ListNode(1) tmp = listNode for i in range(2,n+1): tmp.next = ListNode(i) tmp = tmp.next return listNodedef function1(listNode,k): lists=[] while listNode: lists.append(listNode) listNode = listNode.next if len(lists) < k or k<=0: return else: return lists[-k]
def function2(listNode,k): p1 = listNode p2 = listNode if k <= 0 or p1 == None: return i = 0 while i < k and p1 != None: i += 1 p1 = p1.next if p1 == None and k > i: return while p1 != None: p1 = p1.next p2 = p2.next return p2
def printlist(listNode): tmp = listNode while tmp: print tmp.val tmp = tmp.nextdef main(): listNode = CreateList(11) print "已知链表为:" printlist(listNode) print "倒数第k个结点" print function(listNode, 4)if __name__=="__main__": main()
阅读全文
0 0
- 剑指offer之链表中倒数第k个结点(Python)
- 剑指Offer之链表中倒数第k个结点
- 剑指Offer之 - 链表中倒数第k个结点
- 剑指offer(十三)之链表中倒数第k个结点
- 剑指offer之十三---链表中倒数第k个结点
- 剑指offer:链表中倒数第k个结点(链表)
- 链表中倒数第k个结点(剑指offer)
- 剑指offer(11)-链表中倒数第k个结点
- 剑指offer(十四)链表中倒数第k个结点
- 链表中倒数第k个结点[剑指offer]之python实现
- python剑指offer 链表倒数第k个结点
- (十)剑指offer之链表中倒数第k个结点
- 剑指offer-15:链表中倒数第k个结点
- 剑指offer系列源码-链表中倒数第k个结点
- 剑指offer--链表中倒数第k个结点
- 剑指Offer-链表中倒数第k个结点
- 剑指offer——链表中倒数第k个结点
- 《剑指offer》链表中倒数第k个结点
- Angularjs 全选、反选、勾选删除、批量删除
- 动态添加fragment
- banner轮播图、自带小圆点
- 数据结构实验之链表四:有序链表的归并(STL)
- Scrapy爬虫学习中遇到的问题记录
- 剑指offer之链表中倒数第k个结点(Python)
- Maven profiles构建开发、集测、生产环境配置文件
- 实验二 创建学生成绩-单链表
- 封装OkHttp3框架
- __declspec(dllimport)加和不加的区别
- 算法学习第一章
- noteBook2.3-C#基础第三天
- 欢迎使用CSDN-markdown编辑器
- 03 java基础语法(上)