データそのものがツリー構造をしているようなものは
データそのものが再帰であるのだから
それを扱うコードも再帰を使ったほうがわかりやすい。

だけどデータがリスト構造なだけなら
普通にループを使ったほうがわかりやすい。

適切に選ぶべきだ。