有没有办法递归遍历树并返回一个范围为该递归方法的数组?
所以我最近回答了别人关于这个话题的问题。这个问题可以在这里找到:SO Question。我的解决方案使用了递归范围之外的数组,因此该方法不能(或至少可能不应该)返回该数组。但是,有没有办法编写一个遍历树的递归方法,使其返回一个数组?即使编写一个调用递归方法的初始方法也可以,但我想不出一个好的方法来做到这一点。
这是我之前建议的代码:
private List nodeValues = new ArrayList();
public void traversePreRecursive(BinarySearchTreeNode node)
{
if (node != null)
{
nodeValues.add(node.getValue());
traversePreRecursive(node.getLeft());
traversePreRecursive(node.getRight());
}
}
如您所见,ArrayList
它超出了递归的范围 - 因此返回它没有多大意义。有一个更好的方法吗?