Display the last post by each category?

Try this

<?php
$post_type = "post";
$taxonomy = "category";
$terms = get_terms(
    array(
        'taxonomy' => $taxonomy,
        'hide_empty' => 0,
        'hierarchical'=> 1,
    )
);

echo '<ul>';

foreach($terms as $term):

    $term_id = $term->term_id;
    $term_name = $term->name;

    $query = array(
        'post_type' => $post_type, 
        'post_status' => 'publish',
        'posts_per_page' => 1,
    );
    $query['tax_query'] = array(
        array(
            'taxonomy' => $taxonomy,
            'terms' => $term_id
        )
    );
    $posts = new WP_Query($query);

    while($posts->have_posts()):
        $posts->the_post();
        $permalink = get_permalink($post->ID);
        $post_title = $post->post_title;
        $get_term_link = get_term_link($term_id);
    ?>
        <li>
        <!--<?php //echo the_terms( $post->ID, $taxonomy, 'Term: ', ' &raquo; ' );// with link?> &raquo;-->
        <!-- Term(s): <?php //echo join(', ',wp_get_post_terms($post->ID, $taxonomy, array("fields" => "names")));// without link?> &raquo;  -->
        <?php echo '<a href="'.$get_term_link.'">'.$term_name.'</a>';?>  &raquo; 
        Last Post: <a href="<?php echo $permalink;?>"><?php echo $post_title;?></a>
        </li>
    <?php
    endwhile;

endforeach;

echo '</ul>';       
?>