public static <E> Node<E> bookIterative(Node<E> head, int k) {
        if (head == null) {
            return null;
        }
        Node<E> p1 = head;
        Node<E> p2 = head;
        int i = 0;
        for (; i < k && p1 != null; i++) {
            p1 = p1.next;
        }

        // This condition to check if k is greater than size of the list
        if (p1 == null && i < k) {
            return null;
        }

        while (p1 != null) {
            p1 = p1.next;
            p2 = p2.next;
        }
        return p2;
    }