Пожалуйста, помогите мне исправить мой код.метод toString для дерева двоичного поиска
Для метода toString
, строка должна быть в формате
{currentData, leftSubtree, rightSubtree}
Пустое дерево должен возвращать пустой набор скобок {}
.
для теста JUnit я получаю:
Expected: {5, {0, {-5, {}, {}}, {3, {}, {}}}, {10, {7, {}, {}}, {13, {}, {}}}}
Actual: {5, {0, {-5, {}, {3, {}, {}, {10, {7, {}, {13, {}, {}, {}}
Это мой код:
public String toString() {
StringBuffer string = new StringBuffer("{");
toString(root, string);
string.append("}");
return string.toString();
}
private void toString(BSTNode<T> node, StringBuffer string) {
if (node != null) {
string.append(node.getData());
if (node.getLeft() != null) {
string.append(", " + "{");
toString(node.getLeft(), string);
}
if (node.getRight() != null) {
string.append(", " + "{");
toString(node.getRight(), string);
}
}
string.append(", {}");
}
Спасибо !!
Вы прорисовывали код в своем отладчике IDE? Что ты видишь? –
Вы никогда не выписываете концевую скобку после того, как вы рекурсируете. –
Используйте 'StringBuilder', а не' StringBuffer'. – Andreas