双指针,当相距k-1时,当后者到最后时,前者才恰好是倒数第k个元素。

最后一个元素的循环条件是cur.next!=null,而不是cur!=null.

链表访问(cur.next)全程要确保非空!

    /**
     * 输入一个链表,输出该链表中倒数第k个结点。
     * @param head 链表
     * @param k  倒数第k
     * @return 输出该链表中倒数第k个结点。
     */
    public ListNode FindKthToTail(ListNode head,int k) {
        if(head==null||k<=0){
            return null;
        }
        ListNode cur=head;
        for(int i=0;i<k-1;i++){
            if(cur.next==null){
                return null;
            }
            cur=cur.next;
        }
        ListNode res=head;
        while (cur!=null){
            cur=cur.next;
            res=res.next;
        }

        return res;
    }