public static ListNode getKthNode(ListNode head, int k) {
        if (k < 1 || k > getListLength(head) || head == null) {
            return null;
        }
        ListNode slowPoint = head;
        ListNode fastPoint = head;

        while (k > 0) {
            fastPoint = fastPoint.next;
            k--;
        }

        while (fastPoint != null) {
            fastPoint = fastPoint.next;
            slowPoint = slowPoint.next;
        }

        return slowPoint;

    }