Pelo que entendi da imagem, são 3 traços que separam um nó do outro, certo? No teu exemplo, cada nó exceto o root vai sempre adicionar 6 traços _ _ _ _ _ _, independente do nível do nó, e por isso imprime todos iguais.
Uma lógica simples que vejo aí é de “acumular” os traços a cada nó que você passa, assim teu método poderia ter um segundo argumento que é uma string com os traços acumulados, onde o valor inicial seria _ _ _ que representa o primeiro nó (raiz).
percorrerDecrescente(node, "_ _ _");
// quando tiver dentro do método, é preciso passar pro método recursivo
// esse acumulador concatenado com mais 3 traços, e assim por diante
Aham, tlgd, fiz dessa forma só pra visualizar, aí ta imprimindo todos iguais mesmo. Porém, o que eu não sei o que fazer para os traços se acumulem nas posições corretas.
Ex:
Na img que botei o 15 ta mais afastado, daí o 11 já volta mais um pouco e o 10 já avança novamente.
Pelo que eu entendi ele vai acumular os traços indiscriminadamente, a cada nó. Né isso? Aí na minha cabeça fica com cada vez mais traços, a cada iteração.
Aí é que tá kkkkk, eu não quero que ele acumule os os traços indiscriminadamente, entendesse? Quero entender qual a lógica pra acumular mais nas sub-árvores maiores e menos nas menores e por aí vai.