我应该从inorder方法获取值,然后将它们存储在文本文件中。我如何在下面的代码中实现它?如果我使用返回值返回到另一个写入方法来存储在文本文件而不是System.out.println中,它将不会转到下一个root.getRight()语句。任何帮助?来自二进制树方法的返回值
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()
如果树中有多个元素,这将永远循环。它将遍历到最左边,将其打印到System,然后向右移动一个,然后递归地再次向左移动。它将继续打印第一个元素。 – CharlieS 2014-11-06 00:17:34
@CharlieS:不,它不会;当它在递归调用中向左(或向右)移动时,它会沿着树的更远。 – 2014-11-06 00:25:10
它一直递归到null,然后打印最左边元素中的内容。然后往右走,重新进入。再入让它离开。它再次打印第一个元素,然后向右移动。然后重新进入并离开。打印第一个元素,然后向右转并重新进入。无限无尽 – CharlieS 2014-11-06 00:35:41