我已经看了一遍,似乎找不到任何帮助。对于一个学校项目,我有一个 BST 树,我必须将树中的所有整数放入一个名为 BSTarray 的整数数组中。
这是我到目前为止所拥有的:
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 中的不同索引中,但它所做的只是将相同的数字添加到数组中的所有索引中。我在递归上做错了吗?