学校のプロジェクトでは、BSTツリーがあり、ツリーからのすべてのintをBSTarrayと呼ばれるint配列に配置する必要があります。
これは私がこれまでに持っているものです:
public int [] toBSTArray() {
int size = 20;
int [] BSTarray = new int [size];
for(int i = 0; i <size; i++) {
makeArray(root);
BSTarray[i] = root.getValue();
}
return BSTarray;
}
//helper method called by toBSTArray
public void makeArray(BinarySearchTreeNode node) {
if (node != null) {
makeArray(node.getLeft());
makeArray(node.getRight());
// System.out.print(node.getValue() + " ");
}
}
このメソッドはツリーを調べて、見つけた値を BSTarray のさまざまなインデックスに追加するものだと思っていましたが、配列内のすべてのインデックスに同じ数値を追加しているだけです。再帰で何か間違っていますか?