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

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

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

package live.every.day.ProgrammingDesign.CodingInterviewGuide.List; /** * 在双链表中删除倒数第K个节点 * * 【题目】 * 实现一个函数,删除双链表中倒数第K个节点。 * * 【要求】 * 如果链表长度为N,时间复杂度达到O(N),额外空间复杂度达到O(1)。 * * 【难度】 * 简单 * * 【解答】 * 对于双链表的调整,几乎与单链表的处理方式一样,注意last指针的重连即可。 * 具体过程请参看如下代码中的removeLastKthNode方法。 * * @author Created by LiveEveryDay */ public class RemoveLastKthNodeInDoubleList { public static class DoubleNode { public int data; public DoubleNode prev; public DoubleNode next; public DoubleNode(int data) { this.data = data; } } public static DoubleNode removeLastKthNode(DoubleNode head, int k) { if (head == null || k < 1) { return head; } DoubleNode cur = head; while (cur != null) { k--; cur = cur.next; } if (k > 0) { } else if (k == 0) { head = head.next; head.prev = null; } else { cur = head; while (++k != 0) { cur = cur.next; } DoubleNode node = cur.next.next; cur.next = node; if (node != null) { node.prev = cur; } } return head; } public static void main(String[] args) { DoubleNode node1 = new DoubleNode(1); DoubleNode node2 = new DoubleNode(2); DoubleNode node3 = new DoubleNode(3); DoubleNode node4 = new DoubleNode(4); DoubleNode node5 = new DoubleNode(5); node1.next = node2; node2.next = node3; node3.next = node4; node4.next = node5; removeLastKthNode(node1, 4); DoubleNode n = node1; while (n != null) { System.out.printf("%d ", n.data); n = n.next; } } } // ------ Output ------ /* 1 3 4 5 */
http://www.jsqmd.com/news/715191/

相关文章:

  • 用MATLAB手把手教你画4QAM到256QAM的BER性能曲线(附完整代码)
  • 缺失 released SAP API 时,ABAP Cloud 项目怎样守住 Clean Core
  • JCSprout位运算:从基础到实战的Java高效算法优化指南
  • GNOME Pomodoro:终极番茄工作法工具,提升300%生产力效率
  • 从GB2312到GBK:在STM32上实现全字符集中文显示的避坑指南
  • 5分钟搞定 小龙虾 AI OpenClaw v2.6.6 一键安装|办公自动化神器
  • Saber Webpack配置深度定制:loader、plugin、优化配置的完全手册
  • 从RIS智能超表面到手机5G:最大比合并(MRC)技术是如何让你家网速更稳的?
  • 别再死记硬背p和f了!用这3个实战乐谱片段,真正搞懂音乐中的强弱对比
  • 目标检测数据增强新思路:随机中心点切图(Random Center Crop)防止模型过拟合实战
  • 从电源线到Clock信号:手把手教你搞定不同场景下的Metal布线策略
  • 3分钟免费转换:如何将PNG/JPG图片无损转为SVG矢量图?
  • DragGAN源代码解析:核心类与函数架构带你深入理解项目实现
  • 如何快速构建跨平台动漫社区客户端:Flutter框架下的完整实践指南
  • 如何彻底掌控戴尔笔记本风扇:3大模式的完整硬件管理指南
  • 包装工厂增长新范式:美骏包装联手昊客网络抢占豆包流量红利 - 深圳昊客网络
  • PADS VX2.4新手必看:从眼花缭乱到一目了然,你的PCB设计颜色与选项就该这么设
  • 革命性Python指南python-guide:性能监控与优化工具终极指南
  • 别再傻傻分不清了!从手机屏幕的‘尼特’到摄影的‘勒克斯’,一文搞懂光度学与辐射度学
  • Open Thoughts安全与质量保障:数据验证与去污染的关键技术
  • 3分钟快速掌握图像矢量化:用vectorizer将位图变矢量图的完整指南
  • 深度解析163MusicLyrics:专业歌词同步与时间轴处理实战指南
  • 保姆级教程:在Ubuntu 18.04上从零搭建OpenPCDet,搞定Kitti数据集和PointPillars训练
  • pandas使用笔记、数据清洗、json_normalize
  • 福建 福州波形护栏哪家靠谱 - 品牌企业推荐师(官方)
  • 微信数据备份完整指南:WeChatExporter终极使用教程
  • 3个步骤,让BiliTools成为你的哔哩哔哩资源管理专家
  • 解放CPU!STM32CubeMX配置FSMC驱动SRAM的DMA传输全攻略(以IS62WV51216为例)
  • 洗衣机不排水,大概率是排水泵坏了还是管道堵了?2026年亲测分析 - 小何家电维修
  • 如何用Foundation Sites打造多栏目复杂布局的响应式门户网站:2023完整指南