```/*
* function ListNode(x){
* this.val = x;
* this.next = null;
* }
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pHead ListNode类
* @param k int整型
* @return ListNode类
*/
function FindKthToTail( pHead , k ) {
// write code here
//快慢指针(这种思想可以具化为以下画面:
//本来是要先找到链尾null再往前数k。而通过快慢指针,变成了先数k,然后用快指针找到链尾,此时慢指针就是指向往前数k的节点)
//老生常谈,注意特殊输入,比如空链表和k大于链表长度
if(pHead===null || k===0){return null}
let temp=pHead,num=0
while(temp){num++;temp=temp.next}
if(k>num){return null}
let p1 = pHead
let p2 = pHead
for(let i=0;i<k;i++){p1=p1.next}
while(p1){
p1=p1.next
p2=p2.next
}
return p2
}
module.exports = {
FindKthToTail : FindKthToTail
};