题目描述
输入一个链表,输出该链表中倒数第k个结点。
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) {
// 定义双指针,先将第一个迁移k个结点,然后两个指针同时迁移
if(head == null || k <= 0){
return null;
}
ListNode firhead = head,sechead = head;
int num = k;
// 前移k-1 个结点(注意为什么是k-1个结点)
while(num > 1 && firhead != null){
num = num -1;
if(firhead.next == null){
return null;
}
firhead = firhead.next;
}
while(firhead.next != null){
firhead = firhead.next;
sechead = sechead.next;
}
return sechead;
}
}