【双指针】leetcode 剑指offer 22:链表正倒数第k个结点

OPC UA 协议详解 OPC UA(统一架构)是新一代工业自动化标准通信协议,替代传统OPC Classic,具有跨平台、高安全性、标准化等优势。基于TCP协议,支持全平台部署,采用面向对象架构组织数据,提供实时读写、事件订阅、历史数据访问等功能。作为工业4.0核心协议,适用于智能制造、数字孪生等场景,能实现多品牌设备统一接入。相比Modbus和MQTT,OPC UA协议更规范安全但复杂度较高,是大型工业集群互联的主流选择。 阅读详情

题目描述:
输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。
例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。
示例1:
给定一个链表: 1->2->3->4->5, 和 k = 2.
返回链表 4->5.
思路1:
使用一个dict记录每个节点是第几个然后返回即可,但是时间复杂度较高。

# Definition for singly-linked list.
class ListNode:
    def __init__(self, x):
        self.val = x
        self.next = None

class Solution:
    def getKthFromEnd(self, head: ListNode, k: int) -> ListNode:
        d = dict()
        count = 1
        if not head:
            return head
        cur = head
        while cur:
            d[count] = cur
            cur = cur.next
            count += 1
        if k <= count:
            return d[count-k]
        else:
            return head

思路2:单指针
先遍历统计链表长度,记为 n ;
设置一个指针走 (n-k)步,即可找到链表倒数第 k个节点。
思路3:
在这里插入图片描述
在这里插入图片描述

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution(object):
    def getKthFromEnd(self, head, k):
        """
        :type head: ListNode
        :type k: int
        :rtype: ListNode
        """
        former, later = head, head
        for _ in range(k):
            former = former.next
        while former:
            former = former.next
            later = later.next
        return later
多目标跟踪(MOT)中的卡尔曼滤波(Kalman filter)和匈牙利(Hungarian)算法详解 多目标跟踪(MOT)中的卡尔曼滤波(Kalman filter)和匈牙利(Hungarian)算法详解 1. 概览 在开始具体讨论卡尔曼滤波和匈牙利算法之前,首先我们来看一下基于检测的目标跟踪算法的大致流程。 2. 卡尔曼滤波(Kalman filter) 目标跟踪中使用的就是最基础的 Kalman filter 算法。这里也仅仅讨论最基础的 Kalman filter 算法。 卡尔曼滤波算法的过程很简单,如下图所示。最核心的两个步骤就是预测和更新(下图的 correct)。 在目标跟踪任务中,目标的 阅读详情

相关推荐

UDS(三)网络层时间参数

网络层定义了N_Ar、N_As、N_Br、N_Bs、N_Cr、N_Cs六个时间参数。 网络层在检测到错误的时间传递至上层使用者 1.当N_As 超时时,即发送方没有及时发送出N_PDU,系统将放弃信息的接收并传递<N_Result> = <N_TIMEOUT_A>的N_USData.comfirm指示 2.当N_Ar超时时,即接收方没有及时发送出N_PDU,系统将放弃信息的接收并传递<N_Result> = <N_TIMEOUT_A>的N_USData.co

weixin_44522306的博客 1万+

剑指 Offer 22. 链表中倒数第k个节点 - 力扣(LeetCode)

剑指 Offer 22. 链表中倒数第k个节点 - 力扣(LeetCode)

Onwaier的博客 498

CST仿真提速秘籍:用好Local Mesh,别再让简单结构拖慢你的仿真速度

本文深入探讨了CST仿真中Local Mesh技术的应用,通过区域加密与全局排除策略,显著提升电磁仿真效率。针对5G天线阵列、微波滤波器等多尺度结构模型,提供了网格划分的黄金法则和实战技巧,帮助工程师优化仿真速度与精度,特别适用于电磁仿真和网格设置场景。

weixin_27134495的博客 406

LeetCode-剑指 Offer 22. 链表中倒数第k个节点(Goland实现)

LeetCode题号:剑指 Offer 22. 链表中倒数第k个节点 问题描述: 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. 思路:创建一个额外的数组存储链表...

**My Coding Family** 635

MavLink协议入门

MAVLink是一个非常轻量化的开源的消息协议,用于无人机之间的通信以及无人机机载设备之间的通信。

ffffffeiyu的博客 2474

【剑指offer】 面试题22 链表中倒数第k个结点

题目要求 输入一个链表,输出该链表中倒数第k个结点。 解题分析 我们可以用两次遍历解决问题,第一次遍历是统计链表中的节点个数,第二次找到倒数第k个点。但是这样需要我们两次遍历链表,通常情况下,面试官需要我们一次遍历解决问题,所以有没有更好的方法? 这时候我们需要两个指针同时完成任务,第一个指针从头遍历k-1步同时第二个指针不动,从第k步开始,两个指针同时遍历,直到第一个指针到达尾部,第二个指针刚好...

爱喝舒化奶的博客 338

ArcMap新手必看:Shape属性中的点ZM值到底是什么?如何快速处理

本文深入解析ArcMap中Shape属性中的点ZM值,揭示其在GIS数据中的隐藏维度作用,包括Z值(高程值)和M值(测量值)。针对ZM值可能引发的服务发布问题,提供三种高效处理方案,帮助新手快速掌握数据导入时的ZM值管控策略及精准去除方法。

weixin_42561476的博客 431

LeetCode【剑指offer】系列(链表篇)

搜集《剑指offer》在Leetcode上对应的题目,给出题目链接和题解

永远相信美好的事情即将发生 1130

COMSOL实战:如何用有限元法(FEM)准确仿真电磁场问题?避坑指南

本文是一份COMSOL电磁场仿真实战指南,重点讲解如何运用有限元法(FEM)准确模拟电磁场问题。文章通过矩形波导和偶极子天线两大经典案例,详细剖析了从几何建模、物理场设置、网格剖分到结果验证的全流程,并提供了处理非线性材料、求解器收敛失败等高级问题的避坑技巧,旨在帮助工程师建立可靠的仿真工作流。

weixin_29297127的博客 513

【异常】CNB提示The bill authorization scope cannot access the current request.

摘要:CNB API返回403错误,表明当前token的授权范围无法访问目标仓库。主要原因是:1) REPO_SLUG填写错误,导致资源地址不匹配;2) CNB_TOKEN未授权目标仓库;3) 账号账单状态异常。解决步骤:先检查REPO_SLUG是否与CNB平台仓库地址完全一致;再确认CNB_TOKEN是否绑定目标仓库且有读取权限;最后检查账号账单是否正常且覆盖目标资源。完成排查后更新配置即可解决此授权问题。

奶爸的编程之路,也就一周冷个三天 663

剑指 Offer 22. 链表中倒数第k个节点

剑指 Offer 22. 链表中倒数第k个节点 链接:https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/ 设置双指针,后面一个指针找到第k个结点之后,前面的一个指针开始移动,直至后面的直至达到链表末尾的时候,前面的指针就刚好在链表的倒数第k个结点的位置 # Definition for singly-linked list. # class ListNode: # def __ini

breeze_blows的博客 227

11、基于多阵列电极的表面肌电信号运动估计

本文介绍了一种基于多阵列电极的表面肌电信号运动估计技术,旨在实现对手腕和手指运动的高精度估计,解决传统人机接口在操控多自由度机器人时的局限性。通过多阵列电极系统采集前臂肌肉活动信号,结合独立成分分析(ICA)和非负矩阵分解(NMF)等信号处理方法,提取肌肉协同作用,进而生成运动指令以控制机器人或假肢手。文章对比了多阵列电极与传统电极的优势,展示了运动估计算法的整体流程,并以假肢手控制为例说明其实际应用。最后探讨了该技术在测量精度、应用拓展、智能化和便携化等方面的未来发展方向。该技术为假肢控制、康复训练和人机

ik678901234的博客 87

LeetCode刷题——剑指offer中链表题目汇总

剑指offer链表题目汇总: 剑指 Offer 06. 从尾到头打印链表(简单) 剑指 Offer 18. 删除链表的节点 剑指 Offer 22. 链表中倒数第k个节点 剑指 Offer 24. 反转链表(简单) 剑指 Offer 25. 合并两个排序的链表(简单) 剑指 Offer 35. 复杂链表的复制(中等) 剑指 Offer 52. 两个链表的第一个公共节点(简单)

艾醒的博客 795

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LeetCode 12: 剑指 Offer 22. 链表中倒数第k个节点 (简单); 19. 删除链表的倒数第 N 个结点 (中等); 160. 相交链表(简单)

文章目录T10: 剑指 Offer 22. 链表中倒数第k个节点 (简单)网址思路解法 1: 双指针易错点:T11: 19. 删除链表的倒数第 N 个结点 (中等)网址思路解法 1: 双指针易错点:T12: 160. 相交链表(简单)网址思路解法 1: 哈希集合易错点: T10: 剑指 Offer 22. 链表中倒数第k个节点 (简单) 网址 https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof 输入一个链

无知小九的博客 144

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

《剑指Offer》解题目录(更新完毕)

题目来源于LeetCode上的《剑指Offer》,这里做一个目录方便大家查找。另外有本人的LeetCode解题目录、《程序员面试金典》可点击链接查看。

Michael是个半路程序员 6160

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

剑指 Offer——22:链表中倒数第k个节点

该题目和以下两个题的解题思路相似: 剑指 Offer——18:删除链表的节点 LeetCode19:删除链表的倒数第N个节点 目录 一、题目 二、示例 三、思想 四、代码 一、题目 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 二、示例 示例: 给定一个链表: 1->2->3-&g

D77的博客 254

【leetcode】剑指 Offer 22. 链表中倒数第 k 个节点

剑指 Offer 22. 链表中倒数第 k 个节点题目难度:简单方法一 链接:https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/ 来源:力扣(LeetCode) 题目难度:简单 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3

一个写湿的程序猿 368

【leetcode刷题之路】剑指Offer(1)——字符串+链表+双指针

利用双指针,定义pa和pb分别指向A和B的头节点,这里判断是否相交采用了一个非常有意思的方法,假设A和B相交节点前各有skipA和skipB个节点,而相交节点数为C,pa和pb同时开始遍历,如果pa遍历完了就指向headB,同理pb,那么到最后总会遍历相同次数,对于A:skipA+C+skipB,对于B:skipB+C+skipA,如果此时的节点一样的话,说明相交,否则说明都遍历到了各自的最后节点仍不相交,返回空指针。判断当前l1和l2的大小,如果l1较小,就从l1往后连接,并返回l1,同理l2。

要像蜗牛一样一步一步往上爬! 5943

剑指Offer LeetCode 面试题22. 链表中倒数第k个节点

剑指Offer LeetCode 面试题22. 链表中倒数第k个节点

TrueDei 1279

力扣 剑指offer中链表题解法思路总结

力扣 剑指offer 链表 思路总结 双指针 递归 迭代

Aquaman_的博客 419

【LeetCode-剑指Offer】22. 链表中倒数第k个节点

一、题目 二、解决 1、 思路: 代码: 时间复杂度: O(n)O(n)O(n) 空间复杂度: O(n)O(n)O(n) 2、 思路: 代码: 时间复杂度: O(n)O(n)O(n) 空间复杂度: O(n)O(n)O(n) 3、 思路: 代码: 时间复杂度: O(n)O(n)O(n) 空间复杂度: O(n)O(n)O(n) 三、参考 1、 2、 3、 ...

HeavenDan的博客 293

Leetcode刷题:剑指offer【面试题22 链表中倒数第k个节点】

文章目录思路:双指针 【面试题22 链表中倒数第k个节点】 难度: 简单 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 Leetcode题目对应位置: 面试题22:链表中倒数第k个节点 思路:双指针 常规解法是先遍历一遍单链表,求得链表长度,此时就能得到倒数第 k 个节点位置。再次遍历单链表,从计算出的输出位置进行打印即

学习 & 分享 ~ 373

剑指 Offer 22. 链表中倒数第k个节点 - leetcode 剑指offer系列

题目难度: 简单 原题链接 今天继续更新剑指 offer 系列, 这道题很经典, 也有多种方法, 这里提供三种做法帮助大家拓展思路 老样子晚上 6 点 45 分准时更新公众号 每日精选算法题, 大家记得关注哦~ 另外在公众号里回复 offer 就能看到剑指 offer 系列当前连载的所有文章了 题目描述 输入一个链表,输出该链表中倒数第 k 个节点。为了符合大多数人的习惯,本题从 1 开始计数,即链表的尾节点是倒数第 1 个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1.

随便发挥的博客 247

【剑指offer之链表】链表类型所有题总结

文章目录概述剑指 Offer 06 从尾到头打印链表反转数组AC代码剑指 Offer 22 链表中倒数第k个节点双指针算法AC代码剑指 Offer 24 反转链表反转链表AC代码剑指 Offer 18 删除链表的节点删除节点AC代码剑指 Offer 35 复制链表的复制找规律AC代码剑指 Offer 52 两个链表的第一个公共节点距离归纳法AC代码 概述 本篇文章记录剑指offer标签为链表的题。 下面的题都是在力扣上面做的,可以按照题名搜索即可 剑指 Offer 06 从尾到头打印链表 反转数组 将

Miiiiiiiiiii的博客 350

【leetcode C语言实现】剑指 Offer 22.链表中倒数第k个节点

题目描述 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/lian-biao-zhong-dao

sunshine_hanxx的博客 343
上一篇: 【双指针】leetcode 剑指offer52:两个链表的第一个公共结点
下一篇: leetcode 剑指offer 45:把数组排成最小的数
coding_diamond
博客等级 码龄8年 8粉丝 131原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值