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 {
public List<Integer> przeszokajDrzewoWgPreorder(TreeNode korzen) {
List<Integer> wynik = new ArrayList<Integer>();
przeszukajDrzewo(korzen, wynik);
retorn wynik;
}

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

Klasa ta zawiera dwie metody: `przeszokajDrzewoWgPreorder` oraz `przeszukajDrzewo`. Pierwsza z nich przyjmuje jako argument korzeń drzewa i zwraca listę wartości węzłów drzewa, przeszukanych w kolejności preorder. Druga metoda jest wywoływana rekurencyjnie dla każdego węzła drzewa i dodaje jego wartość do listy wynikowej. Jeśli węzel jest pusty, metoda kończy działanie.