public List<List<Chemin>> parcourirArbre(List<Chemin> listeChemins, Map<Integer, List<Chemin>> mapChemins, List<Chemin> cheminsUtilises, int profondeur, boolean isDeepest, int valDepart, List<List<Chemin>> listDeListDeChemin, int nombreSommets) {
		//print("Entrer dans parcourir arbre : ", isDeepest);
		List tempCheminUtilises = cheminsUtilises;
		if (listeChemins == null) {
			return listDeListDeChemin;

		}
		for (int i = 0; i < listeChemins.size(); i++) {
			if (listeChemins.get(i).getPointArrivee() == valDepart) {
				profondeur++;
				List<parser.Chemin> listToSave = cheminsUtilises;
				cheminsUtilises.add(listeChemins.get(i));
				listDeListDeChemin.add(listToSave);
				//System.out.println("Ye!!!"+  "\tSource: " + listeChemins.get(i).getPointSource() + "\tDest : " + listeChemins.get(i).getPointArrivee() +  " ");

				//if (isValidSequence(listToSave)){
				System.err.print("Voci la liste à sauvegarder  : ");
				for (Chemin chemin : listToSave) {
					System.err.print(" " + "Source: " + chemin.getPointSource() + "  Dest : " + chemin.getPointArrivee());
				}
				System.err.println();


				if (cheminsUtilises.size() > 0) {
					cheminsUtilises.remove(cheminsUtilises.size() - 1);
				}


				break;

			} else if (!isUsed(cheminsUtilises, listeChemins.get(i))) {
				profondeur++;
				//print("Profondeur : " + profondeur , isDeepest);
				//print("avant if "+ "\tSource: " + listeChemins.get(i).getPointSource() + "\tDest : " + listeChemins.get(i).getPointArrivee(), isDeepest);
				cheminsUtilises.add(listeChemins.get(i));
				parcourirArbre(mapChemins.get(listeChemins.get(i).getPointArrivee()), mapChemins, tempCheminUtilises, profondeur, isDeepest, valDepart, listDeListDeChemin, nombreSommets);
				isDeepest = false;
				if (cheminsUtilises.size() > 0) {
					cheminsUtilises.remove(cheminsUtilises.size() - 1);
				}


			}


		}

		return listDeListDeChemin;
	}