当前位置: 首页 > news >正文

【简单】在单链表中删除倒数第K个节点-Java

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击人工智能教程大家好!欢迎来到我的网站! 人工智能被认为是一种拯救世界、终结世界的技术。毋庸置疑,人工智能时代就要来临了,科… 继续阅读 前言https://www.captainai.net/troubleshooter

package live.every.day.ProgrammingDesign.CodingInterviewGuide.List; /** * 在单链表中删除倒数第K个节点 * * 【题目】 * 实现一个函数,删除单链表中倒数第K个节点。 * * 【要求】 * 如果链表长度为N,时间复杂度达到O(N),额外空间复杂度达到O(1)。 * * 【难度】 * 简单 * * 【解答】 * 本题较为简单,实现方式也是多种多样,本文提供一种方法供读者参考。 * * 如果链表为空或者K值小于1,这种情况下,参数是无效的,直接返回即可。除此之外,让链表从头开始走到尾,每移动一步,就让K的 * 值减1。 * 当链表走到结尾时,如果K值大于0,说明不用调整链表,因为链表根本没有倒数第K个节点,此时将原链表直接返回即可;如果K值等 * 于0,说明链表倒数第K个节点就是头节点,此时直接返回head.next,也就是原链表的第二个节点,让第二个节点作为链表的头返回 * 即可,相当于删除头节点;接下来,说明一下如果K值小于0,该如何处理。 * * 先明确一点,如果要删除链表的头节点之后的某个节点,实际上需要找到要删除节点的前一个节点。 * 如果K值小于0,如何找到要删除节点的前一个节点呢?方法如下: * 1、重新从头节点开始走,每移动一步,就让K的值加1。 * 2、当K等于0时,移动停止,移动到的节点就是要删除节点的前一个节点。 * * 这样做是非常好理解的,因为如果链表长度为N,要删除倒数第K个节点,很明显,倒数第K个节点的前一个节点就是第N-K个节点。在 * 第一次遍历后,K的值变为K-N。第二次遍历时,K的值不断加1,加到0就停止遍历,第二次遍历当然会停到第N-K个节点的位置。 * * 具体过程请参看如下代码中的removeLastKthNode方法。 * * @author Created by LiveEveryDay */ public class RemoveLastKthNodeInSingleList { public static class Node { public int data; public Node next; public Node(int data) { this.data = data; } } public static 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) { } else if (k == 0) { head = head.next; } else { cur = head; while (++k != 0) { cur = cur.next; } cur.next = cur.next.next; } return head; } public static void main(String[] args) { Node node1 = new Node(1); Node node2 = new Node(2); Node node3 = new Node(3); Node node4 = new Node(4); Node node5 = new Node(5); node1.next = node2; node2.next = node3; node3.next = node4; node4.next = node5; removeLastKthNode(node1, 4); Node n = node1; while (n != null) { System.out.printf("%d ", n.data); n = n.next; } } } // ------ Output ------ /* 1 3 4 5 */
http://www.jsqmd.com/news/715235/

相关文章:

  • 2026年3月永余除锈除锈工艺先进吗,永余除锈,永余除锈操作简单吗 - 品牌推荐师
  • 别再用PyMOL了!5分钟教你用AlphaFold Colab免费预测自己的蛋白结构(附结果解读指南)
  • 2026年度平面抛光机去毛刺机十大厂家综合榜单 - 品牌企业推荐师(官方)
  • babyFACE韩式半永久雾眉:学生党预算也能轻松拥有 - 品牌策略主理人
  • 为什么92%的MCP插件开发者卡在“MCP server not found”?揭秘VS Code 1.88+版本TLS 1.3强制升级引发的证书链断裂真相
  • LLM Agents: 从大语言模型到自主智能体的演进与架构解析
  • 零基础玩转LFM2-2.6B:CPU推理快3倍,5分钟本地搭建聊天机器人
  • 移远L76K模组选型与实战:多系统GNSS定位在物联网项目中的优势解析
  • 图像转JSON:深度学习与OCR技术实战解析
  • 【限时解禁】VS Code Dev Containers企业级安全加固白皮书(2026 Q1 NIST SP 800-218合规对照表+CI/CD嵌入式策略)
  • 东南亚海外仓系统怎么选?东南亚跨境电商海外仓系统推荐! - 跨境小媛
  • 2026年市北区隐形车衣企业优选指南 - 品牌企业推荐师(官方)
  • 终极指南:如何用Cats Blender Plugin快速优化VRChat模型
  • CPP漫展抢票终极指南:告别手速慢,轻松搞定热门门票
  • 量化系统MMTP简介-R7
  • 从攻击者视角复盘:如何利用JBoss反序列化漏洞(CVE-2017-12149)拿到服务器权限
  • 三河高中哪个好?2026 年 10 所热门高中全对比(附官方信息表),择校看这篇就够了 - 品牌企业推荐师(官方)
  • Windows 11终极清理指南:免费开源工具Win11Debloat提升系统性能51%
  • 算法效率:复杂度原理解析
  • Matlab信号处理:FFT频谱分辨率
  • 免费音乐解锁工具Unlock-Music:打破平台限制,让音乐自由播放
  • Dism++终极指南:5分钟学会Windows系统优化与维护
  • 从一次真实的HW行动复盘讲起:我们是如何通过‘弱口令字典’快速突破内网的?
  • 为什么92%的AI团队在Docker AI Toolkit 2026 Beta测试中放弃Kubeflow?4个核心接入指标对比实测报告
  • 2026年3月水塔拆除工程队推荐,室外装修拆除/拆除垃圾清运/酒店装修拆除/水塔拆除/房屋建筑拆除,水塔拆除工程怎么选择 - 品牌推荐师
  • EgerGergeeert 企业知识库构建:从零搭建基于向量检索的 QA 系统
  • Qwen3-4B-Instruct部署教程:supervisor.conf配置解析与进程守护机制
  • Verilog 进阶教程(个人总结)
  • 用香橙派OrangPi PC和Lakka,打造你的复古游戏机:从镜像烧录到中文设置全攻略
  • MCP (Model Context Protocol) 深度解析:构建下一世代 AI Agent 的基石