所以我做了一個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)中的值;我沒有覺得它打印兩次是有用的。 我知道這是「怪異」的做法。你會如何改變方法? –