No takisto s pomocou DFS (prehladavanie do hlbky) mozes najst aj vsetky mozne cesty z nejakeho vrcholu. Z definicie stromu (suvisly acyklicky graf) vyplyva, ze z kazdeho vrcholu v existuje prave jedna cesta do kazdeho ineho vrcholu. Vsetkych roznych ciest z vrcholu v je teda |V|-1 (kde V je mnozina vrcholov).
Implementacia je jednoducha - pre kazdy vrchol si zapamatas jeho predchodcu pri DFS (koren treba osetrit specialne). Po DFS vypises cestu do kazdeho vrchola v tak, ze prebublas z neho az do korena (prejdes do jeho predchodcu, potom do predchodcovho predchodcu atd.). Takto ziskas cestu z kazdeho vrcholu do korena, ty to chces naopak, takze ju staci reverznut, pripadne ukladat predchodcov na zasobnik.
DFS je O(V), hladanie samotnych ciest je vsak az kvadraticke (ak ma strom podobu spajaneho zoznamu). Lepsie sa to uz asi neda, ked si uvedomis, ze mas O(V) roznych ciest, pricom kazda ma dlzku O(V).
