我最近在一次采访中被要求使用下面的Java成员函数原型为BST遍历顺序编写代码。
public void inOrderPrint()
我不接受任何参数的事实使我感到困惑。我已经习惯了要传入的节点。通过传入的节点来遍历树是非常容易的……我有点困惑,如果没有初始引用,该怎么办?
最佳答案
如果在BST的inOrderPrint()
类中定义了Node
,则给定的签名很有意义,这意味着要遍历的树是根于当前节点的树。另外,树可能是当前类中的一个属性。假设该方法在节点类中,则将是这样的-并注意递归的调用方式:
public class Node {
private Node left;
private Node right;
private Object value;
public void inOrderPrint() {
if (left != null)
left.inOrderPrint();
System.out.println(value);
if (right != null)
right.inOrderPrint();
}
}
关于java - BST的Java成员函数遍历,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37573231/