python 链表倒数第k个节点_链表-删除单链表中倒数第k个节点

9f9f422ca1cf76eb5177a994a40de4a3.png

题目

实现一个函数,一个可以删除单链表中倒数第k个节点


难度

简单


分析

本题比较简单,实现方法多种多样,这里提供一种方法

首先明确一点,在单链表中删除倒数第k个节点,需要找到他的前一个节点,让前一个节点指向后一个节点即可。

  • 如果链表为空,或者是k小于1直接返回即可。
  • 除此之外从链表头走到尾,没移动一步,就让k的值减1。

下面来分析具体的过程:

  • 链表1 -> 2 -> 3, k=4 , 链表不存在倒数第四个节点。
  • 走过的节点为:1 ,2 ,3
  • k的变化:3, 2, 1
  • 链表1 -> 2 -> 3, k=3 , 链表倒数第三个节点,就是第一个节点。
  • 走过的节点为:1 ,2 ,3
  • k的变化:2, 1, 0
  • 链表1 -> 2 -> 3, k=2 , 链表倒数第三个节点,就是第2个节点。
  • 走过的节点为:1 ,2 ,3
  • k的变化:1, 0, -1

由上可知,当链表移动带尾部是,一共有三种情况:

  1. 当k大于0的时候,说明没有倒数第k个节点,直接返回原来链表即可
  2. 当k等于0的时候,说明头节点就是倒数第k个节点
  3. 当k小于0的时候,具体如下:
  • 重头重新遍历链表,每走一步k加1
  • 当k等于0的时候就停止,因为这个节点就是要删除节点的前一个节点。(这也容易理解,如链表1 -> 2 -> 3, k=2,链表的长度为 n=3。此时 3-2=1,正好是2的前一个节点)

Java代码实现

public Node removeLastKthNode(Node head, int k){if(head == null || k < 1) return head;Node cur = head;while(cur != null){k--;cur = cur.next;}if(k == 0) head = head.next;if(k < 0){cur = head;while(++k != 0){cur = cur.next;}cur.next = cur.next.next;}return head;
}

加油鸭!!!

点赞冲!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

天津计算机中级职称需要什么,天津市中级职称评定条件是什么

天津市中级职称评定条件是什么作者&#xff1a;职称驿站浏览量&#xff1a;5351104时间&#xff1a;2019-04-15转眼间2019年马上就要过完三分之一了&#xff0c;对于2019年的职称评审有很多人早早就开始了相关的准备工作&#xff0c;也有一些人才刚刚想到评审的事情&#xff0c…

jsf el表达式_JSP,JSF和EL简介

jsf el表达式JavaServer页面&#xff0c;JavaServer Faces和表达语言 在本文中&#xff0c;我将研究JavaServer Pages&#xff08;JSP&#xff09;和Expression Language&#xff08;EL&#xff09;&#xff0c;然后将其与JavaServer Faces &#xff08;JSF&#xff09;关联。 …

浅谈防火墙对 FTP 的影响及故障排除

FTP 是常见的基于TCP的网络服务&#xff0c;它使用了两个TCP连接来建立逻辑通信信道&#xff0c;即控制连接和数据连接。当客户端与服务器建立一个FTP会话时&#xff0c;使用TCP创建一个持久的控制连接以传递命令和应答。当发送文件和其它数据传输时&#xff0c;它们在独立的TC…

定向输出命令_数据流的世界,带你了解Linux重定向

今天&#xff0c;小编就带大家一起来看看数据重定向。重定向&#xff1a;将原本输出到标准输出的数据重定向到一个文件中。用于终端显示输出的特殊设备&#xff1a;IO重定向是为了改变默认输入、输出的位置&#xff1a;输出重定向(标准输出STDOUT和标准错误输出STDERR)【>】…

SSH(Secure Shell) 介绍一

文章目录基本原理首次建立连接的时候的公钥交换通过ssh来进行密码登录利用公钥来登录基本原理 SSH&#xff08;Secure Shell&#xff09;是一套协议标准&#xff0c;可以用来实现两台机器之间的安全登录以及安全的数据传送&#xff0c;其保证数据安全的原理是非对称加密。 传…

gc 堆外_GC解释:堆

gc 堆外世代垃圾收集器 JVM堆分为两个不同的世代。 一种称为“年轻”&#xff0c;第二种称为“老”&#xff08;有时称为终身制&#xff09;。 年轻一代又分为两个主要的逻辑部分&#xff1a;伊甸园和幸存者空间。 垃圾收集人员还使用了虚拟空间供年轻人和老年人使用&#xff0…

数据传输协议汇总

文章目录一、FTP(File Transfer Protocol 文件传输协议)&#xff08;一&#xff09;FTP 通讯端口&#xff08;二&#xff09;FTP 支持两种连接模式&#xff08;三&#xff09;缺点&#xff08;四&#xff09;FTP 命令&#xff08;五&#xff09;FTP 响应码&#xff08;六&#…

得力科学计算机怎么求余,山商“郭叔”:妙招讲高数 考研路上得力导师

山东工商学院数学与信息科学学院教授郭林大众网海报新闻记者 屈晨晨 烟台报道“郭老师人特别和蔼&#xff0c;能够和学生们打成一片&#xff0c;不仅讲课风趣&#xff0c;同时也给予了我们很多帮助&#xff0c;私底下我们都喊他郭叔。”这是山东工商学院很多毕业生对郭老师的评…

如何打开笔记本电脑的摄像头_Win8系统笔记本电脑摄像头无法使用的解决办法...

Win8系统电脑摄像头不能用怎么办&#xff1f;使用Win8系统笔记本电脑的用户反映&#xff0c;电脑摄像头无法使用了&#xff0c;这是怎么回事呢&#xff1f;如何解决这个问题&#xff1f;请看下文。解决方法&#xff1a;1、打开计算机中的“控制面板”&#xff0c;如图所示&…

浅析文件传输协议 (ftp) 的工作原理

起初&#xff0c;FTP并不是应用于IP网络上的协议&#xff0c;而是ARPANEt网络中计算机间的文件传输协议&#xff0c; ARPANET是美国国防部组建的老网络&#xff0c;于1960-1980年使用。在那时&#xff0c; FTP的主要功能是在主机间高速可靠地传输文件。目前FTP仍然保持其可靠性…

vb.net 同时给多个属性赋值_Python尚学堂高淇|1721时间表示unix时间点毫秒微秒time模块浮点数自动转换强制转换增强赋值运算符...

017浮点数-自动转换-强制转换-增强赋值运算符浮点数称为float用a*b^10形式表示的科学计数法&#xff0c;比如:3.14,314E-2或者314e-2这些数字在内存当中也是按照科学计数法存储、>>>float(3)3>>>314E-23.14>>>float(“3.14”)3.14>>>int(3…

计算机键盘复制键是哪个,键盘按什么键复制粘贴_键盘上复制粘贴快捷键是哪个键-win7之家...

使用电脑的时候经常会需要使用到复制粘贴功能&#xff0c;许多用户可能会习惯使用右键来复制粘贴&#xff0c;其实这样有点麻烦&#xff0c;比较简单的就是使用快捷键来操作&#xff0c;但是有部分用户还不知道键盘按什么键复制粘贴&#xff0c;如果你也有一样需求的话&#xf…

我的世界java无法安装包_手把手教你搭建java环境

前文由于一些历史原因,开发java程序需要技术人员自行搭建环境,而搭建环境对于新手来说并不友好,不像其他语言那般方便,现如今,为帮助想入门java却无法顺利搭建的同学,编写该教程,如果觉得本文有用,请添加关注,更多java教程,后续更新~第一步 下载JDK可自行前往Oracle官网下载指定…

vs 2019 社区版许可证过期_Switch版《最终幻想12:黄道时代》对比PS4版 就没差

2017年7月发布的“最终幻想12”重制版《最终幻想12&#xff1a;黄道时代》登陆PS4平台&#xff0c;4月30日这款经典游戏还将登陆Xbox One和Switch平台&#xff0c;都将支持60帧运行。那么游戏在Switch这款掌机上的表现到底如何呢&#xff1f;油管频道Direct-Feed Games就为大家…

局域网限速软件_8款Windows实用软件推荐,纯干货,总有一款是你必备的

开学后&#xff0c;有些小伙伴得走进大学校门&#xff0c;有些小伙伴走向公司大门&#xff0c;不管你做出了哪种选择&#xff0c;最终都会走向社会&#xff0c;走向岗位。我已经毕业走向社会近10年了&#xff0c;珍藏了一些小视频&#xff0c;呃说错了&#xff0c;是珍藏了一些…

javaserver_什么是JavaServer Faces(JSF)

javaserver这是一个分为两部分的系列&#xff0c;其中我介绍了JSF 2及其如何适合Java EE生态系统。 在第1部分中&#xff0c;我将介绍JavaServer Pages&#xff08;JSF&#xff09;背后的基本思想 &#xff0c;在第2部分中&#xff0c;我将介绍Facelets声明语言 。 在构建Web…

安装计算机一级出现appcrash,win10系统运行程序出现appcrash错误的办法

win10系统使用久了&#xff0c;好多网友反馈说win10系统运行程序出现appcrash错误的问题&#xff0c;非常不方便。有什么办法可以永久解决win10系统运行程序出现appcrash错误的问题&#xff0c;面对win10系统运行程序出现appcrash错误的图文步骤非常简单&#xff0c;只需要1、同…

winpe镜像文件iso下载_下载:微软正式发布Win10 2004版并即日起开始推送

PS&#xff1a;关于Windows 10 v2004版蓝点网早前已建立专题&#xff0c;目前该专题已收录关于该版本的101篇文章&#xff0c;微信篇幅有限无法全部发过来&#xff0c;准备升级的用户建议点击阅读原文按钮或使用电脑访问蓝点网首页查看Windows 10 v2004专题。刚刚微软在官方博客…

iphone固件降级_我在iPhone上装了个安卓

目前使用Android系统设备的好处就是可以执行更多的操作。主要是因为安卓拥有自己的开源计划AOSP(Android Open Source Project)&#xff0c;比iOS开放了更多的应用接口API&#xff0c;商家可以用Android源码进行二次开发&#xff0c;相对iOS开放很多。图片来自百度iPhone跟Andr…

极速pdf编辑器的水印如何去掉_如何修改PDF?有没有详细的PDF编辑器操作方法?...

在工作中我们每天都会处理很多文件&#xff0c;而PDF格式因为其格式稳定也被越来越多的人接受并使用&#xff0c;但也正因为如此&#xff0c;PDF的修改相比较以前常用的Word会复杂很多。那么应该如何修改PDF呢&#xff1f;其实使用PDF编辑器就能让PDF文档像Word一样轻松编辑。1…