Sim, há uma maneira muito melhor. O chamado algoritmo de passagem de árvore de pré-ordem modificado. Você pode encontrar muitas informações pesquisando isso no Google, e tenho certeza de estouro de pilha também.
Os benefícios são que você pode buscar uma subárvore inteira usando apenas 1 consulta. SELECTS será rápido, mas as modificações são mais pesadas.