我有一个构建二叉树的递归Java方法:

BT build() {
   return(a[++k] == 0 ? null : new BT(build(), build()));
}


BT是一个看起来像这样的类:

class BT {
  BT L; BT R;
  BT(BT l, BT r) {
      L = l; R = r;
  }
}


构建类如何工作?如果我想构建一个具有N个节点的树,那么根据N来调用构建函数多少次?

最佳答案

每次调用build函数都会创建一个节点或返回null。

在具有N个节点的二叉树中始终有N + 1个空指针。这是因为每个节点都有2个输出边缘,每个节点(除了根节点之外)都有一个输入边缘。

这给出build的2 * N + 1个调用,以创建具有N个节点的树。

关于java - 如何使用此方法在Java中构建二叉树?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34917105/

10-10 12:38