所以我做了一个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
字符串toStringHelper()我不能返回任何结果,我不能让方法无效。因为我打印出System.out.println(node.left.value)中的值;我没有觉得它打印两次是有用的。 我知道这是“怪异”的做法。你会如何改变方法? –