private static List<VoieDeCirculation> calculerItineraire2(Carte c, Route depart, Route arrivee) {
        List<VoieDeCirculation> chemin = new ArrayList<VoieDeCirculation>();
        List<List<VoieDeCirculation>> tmp = new ArrayList<List<VoieDeCirculation>>();
        List<VoieDeCirculation> best = new ArrayList<VoieDeCirculation>();
        int taille = c.getListeDesIntersections().size() + c.getListeRoutes().size();

        for (Route r : depart.getArrivee().getRoutes()) {
            tmp.add(parcoursGraphe2(r.getArrivee(), arrivee.getDepart()));
        }

        if (tmp == null) {
            return null;
        }

        chemin.add(depart);
        chemin.add(depart.getArrivee());
        for (List<VoieDeCirculation> liste : tmp) {
            if (liste != null) {
                if (liste.size() <= taille && !liste.isEmpty()) {
                    best = liste;
                    taille = best.size();
                }
            }
        }
        if (!best.isEmpty()) {
            chemin.addAll(best);
            chemin.add(arrivee);
        } else {
            chemin = null;
        }
        return chemin;
    }