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