Iterable è solo una interfaccia che descrive la capacità di saper fornire un Iterator. Qualunque classe che deriva da Collection, è Iterable.
Quindi devi anche scegliere quale implementazione usare. Hai avuto suggerimenti o imposizioni a riguardo? ArrayList? LinkedList? Altro?
Dipende da come è fatta la classe Tree e da cosa offre come metodi. Mostra come è fatta (almeno a grandi linee) o che metodi esattamente espone.
selectLeaves è da inserire in Tree o in un'altra classe?
La scansione in "profondità" la si può fare sfruttando la ricorsione.
Inizia comunque a precisare come ho detto sopra.