How to delete all post and attachments of a user when I delete it?

The hook you choose is appropriate, and here is how to use it to delete all posts of all types (posts, pages, links, attachments, etc) of the deleted user:

add_action('delete_user', 'my_delete_user');
function my_delete_user($user_id) {
    $args = array (
        'numberposts' => -1,
        'post_type' => 'any',
        'author' => $user_id
    );
    // get all posts by this user: posts, pages, attachments, etc..
    $user_posts = get_posts($args);

    if (empty($user_posts)) return;

    // delete all the user posts
    foreach ($user_posts as $user_post) {
        wp_delete_post($user_post->ID, true);
    }
}

If you only want to delete user attachments, change the post_type arguments from any to attachment and use wp_delete_attachment($attachment_id) instead of wp_delete_post().