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

剑指Offer_编程题(C#实现)_ 链表中倒数第k个结点

题目:链表中倒数第k个结点

题目描述

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

解题思路

解法1

遍历链表,得到链表的长度n,由于单向链表无法从链表尾端回溯,所以需要从头节点开始往后走n-k+1步,就能找到倒数第k个链表了。

解法2

解法1需要两遍历,怎么在遍历一次的前提下就能求得链表的倒数第k个结点呢?可以设置两个指针,p和q,并且都将其初始值置为头:p = q = pListHead;

然后让p先走k-1步,那么就到了正数第k个结点,然后这时候让p和q同时走,直到p的下一个结点为空,由于两个指针的距离始终保持在k-1,所以当第一个指针到达链表尾节点时,第二个指针正好走到倒数第k个节点。

参考代码

解法1

/* public class ListNode { public int val; public ListNode next; public ListNode (int x) { val = x; } }*/ class Solution { public ListNode FindKthToTail(ListNode head, int k) { // write code here int count = 0; ListNode p = head; if(head == null) return null; while(p != null) { count++; p=p.next; } if(count-k < 0) return null; p=head; for(int i=0; i<count-k; i++) p=p.next; return p; } }

解法2

/* public class ListNode { public int val; public ListNode next; public ListNode (int x) { val = x; } }*/ class Solution { public ListNode FindKthToTail(ListNode head, int k) { // write code here ListNode pAhead = head; ListNode pBhead = head; if(head==null||k<=0) //判断头节点为空,或者k<=0情况 return null; for(int i=0;i<k-1;i++){ if(pAhead.next==null){ //防止K的值大于head.next的范围 节点3个,k为8; return null; } pAhead = pAhead.next; } while(pAhead.next!=null){ pAhead = pAhead.next; pBhead = pBhead.next; } return pBhead; } }
http://www.cnnetsun.cn/news/3713797.html

相关文章:

  • 地铁轨道交通无线动能照明方案,站台附属照明无线化改造详解
  • pacemaker控制haproxy容器
  • JAVA毕设选题推荐:基于SpringBoot+Vue的校园流浪动物报备救助与养护管理平台 大学生流浪动物公益救助服务系统设计【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 【JAVA课程设计/毕业设计】基于 SpringBoot+Vue 的前后端分离架构下高校学习竞赛成果管理系统 高校学生赛事成果溯源、管理与线上展示平台【附源码、数据库、万字文档】
  • 餐饮CPS平台开发公司排名,多级佣金自动结算源码讲解
  • 物联网设备硬件级安全方案:SE050与MK64FX512VDC12协同设计
  • centos7安装libpcaplibnids
  • PDF加密技术实践:算法原理、兼容性与国内免费工具性能对比
  • 元宇能量环开发:从质疑到深度体验,后来我才明白科技轻养生的逻辑【真实感受】
  • (Monte Carlo)蒙特卡罗方法计算圆周率π(java实现)
  • Escrcpy终极指南:免费高效的Android设备无线投屏控制解决方案
  • 企业级Agent智能体开发服务商私有化部署方案与落地场景解析
  • 终极Windows防撤回指南:3步永久保留微信QQ聊天记录
  • 空气净化器选购指南:从CADR/CCM原理到实战评测,以AirX A10SE359为例
  • 三分钟搞定上百个Excel文件搜索:QueryExcel批量查询工具终极指南
  • Play Integrity API Checker实战指南:全面掌握Android设备完整性检测技术
  • 本地部署Hermes Agent与大模型:性能瓶颈分析与优化实战
  • PUBG-Logitech罗技鼠标宏压枪工具:3分钟快速配置指南
  • 终极Mac窗口置顶解决方案:Topit三分钟提升你的多任务效率
  • 揭秘:企业面试最反感的3类网安新人,简历再好看也直接刷掉
  • 计算机毕业设计之基于springboot的电竞赛事管理系统
  • 图片处理工具Thumbnailator的介绍和使用
  • 算法(11):Convex hull-5.6
  • Mentor PADS差分走线设计与信号完整性优化指南
  • 文件加密软件有哪些?6 款全格式办公文件加密软件,2026 必备
  • AI 基础设施建设中的决策陷阱:技术选型、团队能力与时间约束的博弈分析
  • AI副业从0到1实战手册:3类无需编程的AI工具+4步冷启动流程+2024最新平台入驻清单
  • LeetCode gas-station
  • WPF控件游标与十字线设计及交互优化
  • 早起原来还有这些好处