题目描述

输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。

示例:

给定一个链表: 1->2->3->4->5, 和 k = 2.

返回链表 4->5.

1、思路

先求出整个链表有多少个数据,然后向后移动n-k+1个位置就行了。

为什么是n-k+1呢?拿例子来说,n=5,k=2,n-k=3;如果往后面移动3个位置,那么指针指向的是3,答案需要指向4,所以是n-k+1。

2、代码

class Solution {
public ListNode getKthFromEnd(ListNode head, int k) {
int num = 0;
ListNode ans = head, pre = head;
while(pre.next != null){
num++;
pre = pre.next;
}
for(int i = 0; i <= num - k; i++){
ans = head.next;
head = head.next;
}
return ans;
}
}

最新文章

  1. 第二篇 基于.net搭建热插拔式web框架(沙箱的构建)
  2. Apache shiro 文章推荐
  3. sql 默认id为1000
  4. CFD计算
  5. Servlet&amp;jsp基础:第二部分
  6. Guide to make CentOS 7 the perfect desktop
  7. C语言学习笔记——堆和栈——未整理
  8. nodejs 简单http 文件上传demo
  9. 5 HBase 常用Shell命令
  10. Activiti第二篇【管理流程定义、执行任务和流程实例、流程变量】
  11. linux (1)基本知识/目录/磁盘格式/文件系统
  12. 爬虫、请求库selenium
  13. 水晶报表中&quot;已达到系统管理员配置的最大报表处理作业数限制&quot;错误的处理
  14. linux下D盘(适用于U盘、硬盘等一切移动存储设备)策略(比格式化猛,因为是不可恢复!)
  15. 《图解Java多线程设计模式》读书笔记
  16. 【repost】javascript callback
  17. Confluence 6 修改站点标题
  18. CentOS7使用命令连接网络配置
  19. 异步socket处理
  20. SAP查询TABLE对应的文本表

热门文章

  1. 大数据并行计算框架Spark
  2. ES6让字符串String增加了哪些好玩的特性呢?
  3. php 超全局变量(整理)
  4. discuz修改禁止性别保密选项
  5. select和epoll区别
  6. Spring5参考指南:AOP代理
  7. Spring5参考指南: SpEL
  8. uniq 只能相邻行去重
  9. Unity碰撞检测
  10. Mbatis逆向工程常遇错误