剑指offer 之 输出链表的倒数第K个结点
来源:互联网 发布:自动化行业用单片机吗 编辑:程序博客网 时间:2024/06/05 01:04
# -*- coding:utf-8 -*-'''输入一个链表,输出该链表中倒数第k个结点。''''''如果在只希望一次遍历的情况下, 寻找倒数第k个结点, 可以设置两个指针第一个指针先往前走k-1步, 然后从第k步开始第二个指针指向头结点然后两个指针一起遍历当地一个指针指向尾节点的时候, 第二个指针正好指向倒数第k个结点推广: 寻找中间节点, 两个指针一起, 第一个指针每次走两步, 第二个指针每次走一步, 快指针指到尾部, 慢指针正好指到中间'''class ListNode: def __init__(self, x): self.val = x self.next = Noneclass Solution: def FindKthToTail(self, head, k): # write code hereif head == None or k == 0:return Nonep_ahead = headp_behind = Nonefor i in range(k-1):if p_ahead.next:p_ahead = p_ahead.nextelse:return Nonep_behind = headwhile p_ahead.next:p_ahead = p_ahead.nextp_behind = p_behind.nextreturn p_behindnode1 = ListNode(10)node2 = ListNode(11)node3 = ListNode(13)node1.next = node2node2.next = node3S = Solution()print(S.FindKthToTail(node1, 1).val)# python 写法,遍历一遍取出list然后[-k]# 此时输出的是倒数第k个结点的值,而不是结点class Solution: def FindKthToTail(self, head, k): # write code here l=[] while head!=None: l.append(head) head=head.next if k>len(l) or k<1: return return l[-k]
阅读全文
0 0
- 剑指offer 之 输出链表的倒数第K个结点
- 剑指offer 输出链表倒数第k个结点
- python剑指offer 链表倒数第k个结点
- [剑指offer][面试题15]输出链表倒数第K个结点
- 剑指offer:输入一个链表,输出该链表中倒数第k个结点。
- java实现输入一个链表,输出该链表中倒数第k个结点。--《剑指offer》
- 剑指Offer 15 输入一个链表,输出该链表中倒数第k个结点
- 剑指offer:输入一个链表,输出该链表中倒数第k个结点。
- 剑指offer——输出链表倒数第K个结点
- 剑指offer--输入一个链表,输出该链表中倒数第k个结点。
- 剑指offer:输出该链表中倒数第k个结点
- 剑指Offer之链表中倒数第k个结点
- 剑指Offer之 - 链表中倒数第k个结点
- 剑指offer(十三)之链表中倒数第k个结点
- 剑指offer之十三---链表中倒数第k个结点
- 剑指offer--求链表的倒数第k个结点
- 剑指offer --反向输出链表与输出链表的倒数第k个元素
- 输出链表倒数第K个结点
- POJ.3894 迷宫问题 (BFS+记录路径)
- Redis4.0.1的安装及哨兵模式的配置
- csdn上看到的一篇关于vue-cli的webpack模板项目配置文件分析
- 指定脚本解释器
- Maven下载项目依赖jar包和使用方法
- 剑指offer 之 输出链表的倒数第K个结点
- 打桩?——怎么用?
- 深度学习:Demo1-MNIST
- Tomcat目录结构含义
- 定位底部的输入框被软键盘覆盖解决方案
- Java 的版本历史与特性
- 重建二叉树
- 学习网站
- win10 java jdk环境变量 配置