import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    public ListNode FindKthToTail (ListNode pHead, int k) {
        //当链表为空或k为0时,返回null
        if(pHead==null||k==0)return null;
      
      //设置快慢指针
        ListNode fast=pHead;
        ListNode slow=pHead;
        int i=1;
        
      //fast从头走到尾,i表示fast的位置,i>k时,slow开始一起走,直到fast走到最后一个节点
        while(fast.next!=null){
            fast=fast.next;
            i++;
            if(i>k){
                slow=slow.next;
            }
        }
        
      //判断k值,大于链表长度返回null
        if(i<k)return null;
        
      //返回slow节点
        return slow;
    }
}