Так что я сделал реализацию BSTКак эта рекурсия работает и как я могу ее распечатать?
private String toStringHelper(Node node) {
if (node == null) {
return "";
}
if (node.left != null) {
System.out.println(node.left.value);
toStringHelper(node.left);
}
if (node.right != null) {
System.out.println(node.right.value);
toStringHelper(node.right);
}
return "";
}
Я хочу использовать рекурсию. Проблема в том, что он не будет печатать элемент, который является моим корнем, в противном случае он работает (начало редактирования). при вставке следующих значений 100, -12, -13, -1, 0, 12, 10, 123, 122, 124. Он возвращает их в следующем порядке: -12 -13 -1 124 Который явно не заказан вообще. (Конец редактирования)
Дело в том, что я не совсем уверен в том, как работает рекурсивная часть, и я хотел бы, чтобы это объяснялось, чтобы я также мог получить способ распечатать корень в соответствующем месте ,
Какой смысл возвращать ""? – haifzhan
вы никогда не печатаете значение узла ... – f1sh
String toStringHelper() Я ничего не мог вернуть, И я не мог сделать метод void. И так как я распечатываю значения в System.out.println (node.left.value); Я не счел полезным печатать его дважды. Я знаю, что это «странная» практика. Как бы вы изменили метод? –