思路:两个指针沿着链表往后找,before 比 after 先走K个节点:若链表长度大于等于K,当 before 走到最后一个节点的next时,after即倒数第K个节点;若链表长度小于K,返回 null。
class LinkedListNode {
int val;
LinkedListNode next;
LinkedListNode(int val) {
this.val = val;
}
}
public class Solution {
public LinkedListNode findKthToTail(LinkedListNode head, int k) {
LinkedListNode before = head;
LinkedListNode after = head;
int i = 0;
while(before != null) {
before = before.next;
i++;
if(i > k) {
after = after.next;
}
}
return i<k ? null : after;
}
}