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,一经查实,立即删除!

相关文章

SSL 和 TLS 介绍

SSL(Secure Sockets Layer 安全套接层)及其继任者传输层安全&#xff08;Transport Layer Security&#xff0c;TLS&#xff09; 是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。 SSL 功能&#xff1a; 认证用户和服务器&#xff…

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

天津市中级职称评定条件是什么作者&#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;关联。 …

wxpython多线程消息传递_wxpython多线程间通信

#!bin/bash/python#-*- codingutf-8 -*-importtimeimportwxfrom threading importThreadfrom wx.lib.pubsub importpubclassTestThread(Thread):def __init__(self):Thread.__init__(self)self.start()defrun(self):#线程执行的代码for i in range(101):time.sleep(0.03)wx.Cal…

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

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

电子计算机职业40201,天津滨海中等专业学校

一、招生专业1.生物技术制药专业培养:该专业学生主要面向生物技术制药的相关医药企业&#xff0c;具备生物技术制药生产岗位的工作能力。在校学习期间学习生物药物的生产、质量控制、经营、设备维护及药物研发助理等职业技能&#xff0c;在校期间可获得酶制剂制造工职业资格证书…

wps 呼叫方拒绝呼叫_呼叫我或异步REST

wps 呼叫方拒绝呼叫本文是使用Spring Boot Java 8制作的工作正常的异步REST应用程序的非常简单的示例。SpringBoot使开发Web应用程序几乎非常容易&#xff0c;但是为了简化任务&#xff0c;我从Spring存储库中举了一个例子&#xff0c;称为rest- service &#xff0c;将其分叉…

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

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

SSH(Secure Shell) 介绍一

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

影响个人计算机系统功能的因素,影响个人计算机系统功能的因素除了系统使用哪种位的微处理器外,还有CPU的时钟频率、CPU主内存容量、CPU所能提供的指令集。...

影响个人计算机系统功能的因素除了系统使用哪种位的微处理器外&#xff0c;还有CPU的时钟频率、CPU主内存容量、CPU所能提供的指令集。更多相关问题根据《空气质量恶臭的测定三点比较式臭袋法》(GB&#xff0f;T14675-1993)&#xff0c;臭气浓度是指用无臭空气对恶臭样品连续稀…

gc 堆外_GC解释:堆

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

predicate 列存储索引扫描_ColumnStore index (列存储索引)解析

简介首先介紹列存储的概念&#xff1a; 传统的数据库存储是行存储。对于SQL Server来说&#xff0c;每个page是8K&#xff1b;往page里面塞数据&#xff0c;假设该表每条数据长度是500字节&#xff0c;那么这个page 先塞第一条数据&#xff0c;然后再塞第二条数据&#xff0c;大…

数据传输协议汇总

文章目录一、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仍然保持其可靠性…

io流,装饰者模式_流与装饰器

io流,装饰者模式几年前&#xff0c; Streams API随lambda表达式一起在Java 8中引入。 作为一名训练有素的Java专家&#xff0c;我尝试在我的一些项目中使用此新功能&#xff0c;例如here和here 。 我真的不喜欢它&#xff0c;然后又回到了好的老房子里。 此外&#xff0c;我创建…

海湾汉字编码表全部_汉字编码简明对照表

汉字编码简明对照表说明&#xff1a;1、下列汉字取自国标(GB 2312-80)中的分级与排列内容&#xff1b;包含所有的第一级汉字和第二级汉字中的常用部分。2、第一级汉字(16—55区的汉字)以拼音字母为序进行排列&#xff0c;同音字以笔形顺序横、竖、撇、捺、折为序&#xff0c;起…

现代计算机教室布置图片,高中教室布置设计图

A&#xff1a;买几盆花要容易活的比如仙人球就不错还有买几张白纸布置一下学习园地在上面贴些作文*等可以*出不错的氛围办个比较好的黑板报&#xff0c;如果有兴趣可以做一些墙报。在教室的前面可以贴一些学有些教室布置是布置了&#xff0c;但很不理想&#xff1a;有的贴挂得五…

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…