Ah beh, aspetta ... avevo capito male io. Se metti un return, l'unica cosa certa è che in quella invocazione di treeSplit2 in cui sei non fai altri cicli e quindi non scendi sicuramente più "sotto" ricorsivamente. Ma questo NON blocca di per sé invocazioni ricorsive fatte dai livelli più "alti".
Usare una variabile "globale" ... uhm, non è molto bello, detto in generale .... Io ti suggerirei di sfruttare un valore di ritorno boolean, visto che ora come ora non restituisci nulla.![]()