剑指offer 链表中的倒数第K个节点 Python and C++

python实现单链表中删除倒数第K个节点的方法 主要为大家详细介绍了python实现单链表中删除倒数第K个节点的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 立即下载

题目描述

输入一个链表,输出该链表中倒数第k个结点。

思路

假设链表中的节点数大于等于k个,那么一定会存在倒数第k个节点,首先使用一个快指针先往前走k步,然后两个指针每次走一步,两个指针之间始终有k的距离,当快指针走到末尾时,慢指针所在的位置就是倒数第k个节点。

做题可能出现的问题

考虑k小于0的情况,其次就是链表的长度是否够k个长度

python

# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def FindKthToTail(self, head, k):
        # write code here
        if not head  or k<=0:
            return None
        p = q = head
        count = 0
        while q is not None and count<k:
            q = q.next
            count += 1
        if count<k:
            return None
        while q is not None:
            q = q.next
            p = p.next
        return p

C++

/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
class Solution {
public:
    ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
        ListNode *ptr1 = pListHead; // 指针1
        ListNode *ptr2 = pListHead; //指针2
        if (pListHead == NULL || k == 0)//考虑全面
            return NULL;
        int i;
        for(i=0;i<k-1;i++) // p1 走k-1步
        {
            if(ptr1->next) // 这个条件等价于方法一种的,if(n<k)return NULL; 因为当i<k-1时,如果发生ptr1->next==null,说明k太大了,超出了链表的总结点个数
                ptr1 = ptr1->next;
            else 
                return NULL;
        }
        while(ptr1->next) // p1走到end, p2开始走
        {
            ptr1=ptr1->next;            
            ptr2=ptr2->next;
        }
        return ptr2;
    }
};
LLM and Embedding区别 LLM(大语言模型)和 Embedding(嵌入)是自然语言处理(NLP)中的两个核心概念,它们的核心区别在于。Embedding 计算向量。 阅读详情

相关推荐

银河麒麟V10ARM架构服务器离线安装docker\nacos【附安装包】

本文分享了在银河麒麟ARM64操作系统上安装Docker和Nacos的完整过程。首先提供了Docker的自动化安装脚本,包含服务配置、存储路径设置等关键步骤,并给出了常用维护命令。接着详细介绍了通过Docker-compose部署Nacos的方法,包括镜像导入、配置文件修改、鉴权设置等注意事项,特别强调了密钥长度必须超过32个字符的要求。文章还提供了Nacos初次登录的注意事项,并预告了后续可能推出的Redis、Nginx等安装教程。所有配置文件和脚本均可直接下载使用,适合内网环境下国产操作系统的部署

weixin_39054697的博客 2344

Python 链表中倒数第k个节点

输入一个链表,输出该链表中倒数第k个节点。 # -*- coding:utf-8 -*- class ListNode: def __init__(self, x): self.val = x self.next = None class Solution: def FindKthToTail(self, head, k): fi...

weixin_44208324的博客 280

分享一个简单的迭代学习机器人双臂控制(MATLAB)

1 什么是迭代学习控制 迭代学习控制(iterative learning control,简称ILC)由Uchiyama于1978年首先提出,不过因为论文由日文撰写,影响不是很大。1984年,Arimoto等人用英文介绍了该方法。它是指不断重复一个同样轨迹的控制尝试,并以此修正控制律,以得到非常好的控制效果的控制方法。 迭代学习控制的特点是“在重复中学习”,通过反复的迭代修正,达到改善控制效果的目的。迭代学习控制的原理是根据系统前次运行所获得的输出误差信息,在控制过程中不断修正控制输入,随着迭代的进行,逐

weixin_45776027的博客 4483

python--剑指offer-- 22. 链表中倒数第k个节点

输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. class ListNode: def __init__(self, x): self.val = x self

Chasing__Dreams的博客 284

OpenCV13-图像噪声:椒盐噪声和高斯噪声

考虑到椒盐噪声会在图像中的任何一个位置随机产生,因此对于椒盐噪声的生成,需要使用OpenCV中能够产生随机数的函数。OpenCV中也没有专门为图像添加高斯噪声的函数,对早在图像中添加椒盐噪声的过程,可以根据需求利用能够产生随机数的函数来完成在图像中添加高斯噪声的任务。椒盐噪声又称作脉冲噪声,他会随机改变图像中的像素值,其样子就像是在图像上随机地撒上一些盐粒和黑椒粒,因此被称为椒盐噪声。函数能够产生均匀分布或者高斯分布的随机数,可以利用该函数产生符合高斯分布的随机数,之后在图像中加入这些随机数即可。

SHLYYY 5122

Eureka常见面试题总结

点击关注我的博客原文 Eureka是Netflix组件的一个子模块,也是核心模块之一。云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移(来源springcloud中文网的介绍:https://www.springcloud.cc/)。下图总结了Eureka服务端(以下简称服务端)与Eureka客户端(以下简称客户端)之间协同工作的流程: 流程说明:...

u012105931的博客 2万+

python 链表倒数第k个节点_Day14:链表中倒数第k个结点

剑指Offer_编程题——链表中倒数第k个结点题目描述:输入一个链表,输出该链表的倒数第k个结点。具体要求:时间限制: C/C++ 1秒,其他语言2秒空间限制: C/C++32M,其他语言64M具体思路:思路一: 我们需要遍历出链表的长度,然后遍历出我们需要的倒数第k个结点,这是我们常规的想法,当然也考虑了代码的鲁棒性和空指针,k为0,k应该大于链表的长度。1、首先我们用Java实现该思路:pu...

weixin_39983427的博客 267

嵌入式调光控制库:轻量级软启/渐变/记忆逻辑实现

调光控制是智能照明系统的核心基础功能,涉及亮度调节、人机交互与电气安全多重需求。其底层原理依赖于对相位角或PWM占空比的精确时序控制,并需融合软启动、渐变过渡、状态记忆等工程化逻辑。这类轻量级调光行为逻辑层,不直接操作硬件寄存器,而是以确定性、无动态内存、可配置的方式封装用户意图到目标亮度值(0–100%)的映射过程,显著提升产品鲁棒性与跨平台复用能力。广泛应用于TRIAC交流调光、LED直流PWM驱动及DALI/Matter等智能照明协议网关中,尤其适合资源受限的Cortex-M系列MCU和FreeRTO

weixin_28949937的博客 579

剑指Offer-Python-链表中倒数第k个结点

题目:链表中倒数第k个结点 输入一个链表,输出该链表中倒数第k个结点。 思路1:一次遍历该链表,将结点一次存入列表res中,最后返回res[-k]。这里需要注意的是k的值是否符合题目要求,如果小于等于0或大于res长度则返回None。时间空间复杂度为O(n)。 代码: # -*- coding:utf-8 -*- # class ListNode: # def __init...

神不烦 821

交流异步机VVVF变频控制simulink/matlab仿真分析

VVVF,是Variable Voltage and Variable Frequency的缩写, 意为:可变电压、可变频率,也就是变频调速系统。 VVVF控制的逆变器连接电机,通过同时改变频率和电压,达到磁通恒定(可以用反电势/频率近似表征)和控制电机转速(和频率成正比)的目的,所以多应用在变频器中,属于工业自动化领域。

Ezekiel_Mok的博客 4209

AI大模型开发——transformer模型超全完整版(0基础可懂)

为了更深入的了解transformer模型,我们首先从transformer的诞生聊起吧。transformer在2017年由Vaswani等人首次提出,它摒弃了之前流行的循环神经网络和卷积神经网络的架构,引入了自注意力机制( Self-Attention),显著提高了处理序列数据的能力和效率。transformer模型的这种设计使其在处理长距离依赖问题时, 相比于传统的循环神经网络和长短期记忆网络(LSTM)表现得更加出色,至此, 开启了NLP技术的新篇章。

m0_74922316的博客 2120

python删除链表的倒数第k个节点,剑指offer 链表中的倒数第K个节点 Python and C++

题目描述输入一个链表,输出该链表中倒数第k个结点。思路假设链表中的节点数大于等于k个,那么一定会存在倒数第k个节点,首先使用一个快指针先往前走k步,然后两个指针每次走一步,两个指针之间始终有k的距离,当快指针走到末尾时,慢指针所在的位置就是倒数第k个节点。做题可能出现的问题考虑k小于0的情况,其次就是链表的长度是否够k个长度python# -*- coding:utf-8 -*-# class L...

weixin_39760967的博客 163

C# Blazor Server工业监控Web UI:实时数据推送、历史曲线、报警记录,跨浏览器访问(踩坑总结+生产可用)

坑点现象解决方案StateHasChanged()太频繁服务器CPU占用高,浏览器卡顿别100ms刷新一次,1秒刷新一次足够并发高时服务器卡多个用户同时访问,服务器响应慢用Redis做分布式缓存,或者加服务器做负载均衡断线重连后数据丢失浏览器刷新后,实时数据不更新用InfluxDB存历史数据,刷新后重新查询工业现场网络不稳定Blazor Server频繁断线用SQLite本地缓存,断网时数据不丢,联网后补发历史曲线查询慢查询过去7天的数据,要等很久。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 305

剑指offer 14、链表中的倒数第k个节点 python c++

题目描述: 输入一个链表,输出该链表中倒数第k个结点。 翻车思路:把链表倒序,然后找到底k个节点,返回即可。 为啥会翻车:我以为是返回倒是第k个节点,输出它的值。结果这题目要输出的是原来链表的倒数第k个及以后的节点。 举个例子,用例:{1,2,3,4,5},3,意思是返回倒数第三个节点对应输出应该为: {3,4,5},而不是{3} 就当复习一遍链表倒序吧。 # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): #

雾隐雾现的至渝博客 2万+

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

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

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...

【刷题】2021最新剑指Offer汇总

新手村 关卡1-1 洛谷的第一个任务 超级玛丽游戏(洛谷-P1000):点击这里 A+B Problem(洛谷-P1001):点击这里

瑞新の博客:bennyrhys 6299

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

剑指 Offer 22. 链表中倒数第k个节点 题目: 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. 思路:定义一个快慢指针,让快指针先跑k个位置,在快指针跑完K个位置以后双指针一起先后运行当快

一只攻城狮的博客 301

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

剑指offer_面试题22 : 链表中倒数第k个节点( python实现 )

链表中倒数第k个节点( python实现 ) 一、题目描述 题目:链表中倒数第k个节点 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第一个节点。例如,一个链表有6个节点,从头节点开始,他们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 二、解题思路   暂略。(此处主要作为书中python实现补充) 三、代...

UCASer 726

剑指Offer题解——链表

文章目录剑指 Offer 06. 从尾到头打印链表利用栈逆向输入数组剑指 Offer 18. 删除链表的节点解法剑指 Offer 22. 链表中倒数第k个节点快慢指针剑指 Offer 24. 反转链表解法剑指 Offer 35. 复杂链表的复制解法剑指 Offer 52. 两个链表的第一个公共节点解法推荐阅读 剑指 Offer 06. 从尾到头打印链表 剑指 Offer 06. 从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例 1: 输入:head = [1,3

wardseptember的博客 586

《剑指offer》 链表中倒数第k个节点

本题来自《剑指offer》 链表中倒数第k个节点 题目:   输入一个链表,输出该链表中倒数第k个结点。 思路:   倒数第k个节点,而且只能访问一遍链表,定义两个节点,两者之间相差k个距离,遍历到尾节点,则便找到了倒数k节点了。   考虑代码的鲁棒性。代码的鲁棒是指程序能够判断输入是否合乎规范要求,并对不合理的输入给予合理的处理。   1.如果传入的根节点是空:直接返回空   2....

weixin_30340617的博客 84

剑指OFFER-链表中倒数第k个结点

剑指OFFER-链表中倒数第k个结点QuestionSolution暴力遍历先跑与后跑 Question 输入一个链表,输出该链表中倒数第k个结点。 关键词:链表 顺序 Solution 暴力遍历 顺序遍历所有结点得到链表总长度,再顺次得到倒数第k个节点。另外可以利用栈,先压入所有结点,然后推出第k个结点。 时间复杂度:O(2N) 空间复杂度:O(1) Python class Solutio...

会有Mao的 317

【剑指offer】Python、java,C++三种语言同时实现

文章目录前言 前言 1、关于剑指offer的题,只要是博主发出来的都是经过牛客AC的 2、实现语言多半是python和java以及C++同时实现的,很少没用c++实现 3、只是用于交流,毕竟自我感觉整理的很好哎 ...

贾继康的博客 1851

剑指offer - 链表中倒数第k个节点

题目描述 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. 解法一:快慢指针(C++)...

Aries_young的博客 119

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

文章目录题目代码PythonC++ 题目 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. 代码 Python # 思路: # 快慢指针法求解,注意空指针,链表长度小于k,k为0等情况->代码鲁棒

小陈说CV的博客 159

每日算法题 | 剑指offer 链表专题 (5)链表中倒数第k个节点

点击上方“Jerry的算法和NLP”,选择“星标”公众号 重磅干货,第一时间送达题目链表中倒数第k个节点题目要求输入一个链表的头结点,从尾到头反...

Jerry的编程之路 286

【剑指offer python解题笔记】Offer 22. 链表中倒数第k个节点

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 解题笔记 一、题目 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。 二、解题 1.我的思路 读题:输入链表head,和要输出的倒数第k个节点 搞一个列表stack,遍历节点,把节点append进去,然后返回stack[-k]: # D.

qq_41905601的博客 407

【算法leetcode】剑指 Offer 22. 链表中倒数第k个节点(多语言实现)

输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。 ...

二当家的白帽子 333
上一篇: 剑指offer 调整数组顺序使奇数位于偶数前面 Python and C++
下一篇: 如何Mac上用QuickTimePlayer和Soundflower插件录制完美视频和遇到的问题
GhostintheCode
博客等级 码龄8年 53粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值