1. 题目描述
输入一个链表,输出该链表中倒数第k个结点。
原题传送门:link.
2. 提取关键词
链表,倒数第k个
3. 思路
- 链表长度无法直接输出,可遍历得出
- 本题使用快慢指针,使快指针与慢指针间始终相差k个节点
- 当快指针到达尾部后的null时,慢指针刚好在倒数第k个节点
- 要考虑数组长度小于k的情况,此时返回null
4. 代码实现(Java)
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
ListNode fast=head,slow=head;
int i=0;
while(fast!=null){
i++;
if(i>k){
slow=slow.next;
}
fast=fast.next;
}
return i<k?null:slow;
}
}
5. 知识积累
暂无