我最近在一次采访中被要求使用下面的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/

10-13 04:42