Ricorsivamente sì (o meglio, ovviamente puoi fare tutte le variazioni sintattiche che vuoi, ma il concetto è sempre quello); in alternativa puoi scrivere una versione iterativa di questo algoritmo.