Я должен получить значения из метода inorder, а затем сохранить их в текстовом файле. Как я могу достичь этого в следующем коде? Если я использую return для возврата значений другому методу записи для хранения в текстовом файле вместо System.out.println, он не перейдет к следующему утверждению root.getRight(). Любая помощь?Возвращаемое значение из метода двоичного дерева inorder
private String inorder(TreeNode root) {
if(root.getLeft()!=null){
inorder(root.getLeft());
}
stringConcatenation += root.getData());
if(root.getRight()!=null){
inorder(root.getRight());
}
return stringConcatenation;
} // end of inorder()
Это будет цикл навсегда, если в дереве содержится более одного элемента. Он будет перемещаться влево, распечатывать его в Системе, затем идти вправо, а затем рекурсивно идти влево. Он просто сохранит печать первого элемента. – CharlieS
@CharlieS: Нет, не будет; когда он идет слева (или справа) в рекурсивном вызове, он идет дальше по дереву. –
он возвращает все пути до нуля, затем печатает то, что находится в самом левом элементе. затем идет направо и повторно. повторное включение берет его. он снова печатает первый элемент, затем идет правильно. затем возвращается и уходит. печатает первый элемент, затем переходит вправо и повторно. ad infinitum – CharlieS