链表中倒数第k个结点

求链表中的倒数第k个结点?

 //链表中的倒数第 K 个结点
public ListNode FindKthToTail(ListNode head,int k){

    ListNode fast = head;
    ListNode slow = head;

    if(k <= 0){
        throw new RuntimeException("请输入自然数k!");
    }

    if(head == null) {
        throw new RuntimeException("链表不能为空!");
    }

    for(int i = 0;i < k;i++){
        if(fast != null){//先走k步
            fast = fast.next;
        }else {
            throw new RuntimeException("k值大于了链表长度");
        }
    }

    while (fast != null){//pre == null 时p指针指向倒数第k个结点
        slow = slow.next;
        fast = fast.next;
    }
    return slow;
}