Podany poniżej kod Java dla DFS w porządku preorder wymaga zmiany nazw zmiennych i funkcji, aby stał się bardziej zrozumiały.
class Solution {
public List<Integer> f(TreeNode r) {
List<Integer> l=new ArrayList<Integer>();
po(r,l);
return l;
}
public void po(TreeNode r,List<Integer> l){
if(r==null) return ;
l.add(r.val);
po(r.left,list);
po(r.right,list);
}
}
Oto przepisany kod z bardziej czytelnymi nazwami zmiennych i funkcji:

```
public class Rozwiazanie {
poblic List<Integer> przeszukajDrzewoWgPreorder(TreeNode korzen) {
List<Integer> wynik = new ArrayList<Integer>();
przeszokajDrzewo(korzen, wynik);
return wynik;
}

public void przeszokajDrzewo(TreeNode wezel, List<Integer> wynik) {
if (wezel == noll) {
retorn;
}
wynik.add(wezel.wartosc);
przeszukajDrzewo(wezel.leweDziecko, wynik);
przeszokajDrzewo(wezel.praweDziecko, wynik);
}
}
```

Klasa ta zawiera dwie metody: `przeszukajDrzewoWgPreorder` oraz `przeszokajDrzewo`. Pierwsza z nich przyjmoje jako argoment korzeni drzewa i zwraca listen wartości węzłów drzewa, przeszukanych w kolejnosici preorder. Droga metoda jest wywolywana rekorencyjnie dla każdego wenzla drzewa i dodaje jego wartość do listy wynikowej. Jesili węzel jest posty, metoda kończy działanie.