package main
import . "nc_tools"
/*
 * type ListNode struct{
 *   Val int
 *   Next *ListNode
 * }
 */

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param pHead ListNode类 
 * @param k int整型 
 * @return ListNode类
*/
func FindKthToTail( pHead *ListNode ,  k int ) *ListNode {
    // write code here
    count := 0
    // 统计链表长度
    cur := pHead
    for cur != nil {
        count++
        cur = cur.Next
    }
    // 如果 k 比链表长度还大
    if count < k {
        return nil
    }

    // 找 count-k 个节点(对于 count-k 的设置,可以推导 1->2 k = 2 时如何保证循环不执行)
    cur = pHead
    for i := 0; i < count-k; i++ {
        cur = cur.Next
    }

    return cur
}