Вот решение, использующее ваш существующий дизайн logi c, или как я понял. Я изменил имена некоторых переменных, чтобы вспомнить, что и что делало. (используйте значащие имена при коде)
recursion(1, 0, 0, 7);
static void recursion(int row, int space, int num, int total){
if (space < total-row){
System.out.print(' ');
if (total > 9) System.out.print(' ');
recursion(row, ++space, num, total);
}else if(num < row*2-1){
String r = (row < 10 && total > 9)?" "+row:""+row;
System.out.print(r);
recursion(row, space, ++num, total);
}else{
System.out.println();
recursion(++row, 0, 0, total);
}
}
}