【问题标题】:Traversing an overflowing binary tree遍历溢出的二叉树
【发布时间】:2012-11-09 04:33:53
【问题描述】:

给定一个非常大的二叉树(即具有数百万个节点),如何确定树中的节点数?换句话说,给定这棵树的根节点给一个函数,该函数应该返回树中的节点数。

或者说如果二叉树有非常多的节点,你如何检查二叉树是否是BST?

【问题讨论】:

  • 假设您不想简单地计算所有节点,您的限制是什么?

标签: binary-tree


【解决方案1】:

遍历所有节点并检查您需要的任何条件/指标。如果没有关于树的额外知识,您将无能为力。

您可以在创建树时强制执行特定条件(即必须平衡/排序/无论如何)或在创建时收集有关树的信息(即存储并不断更新子节点的数量)。

【讨论】:

    【解决方案2】:

    要检查它是否是有效的 bst,您必须首先访问每个节点深度并确保每个节点都小于前一个节点。

    如果您想评估平衡 BST 需要多长时间,您可以通过计算一条腿的长度来快速估算尺寸,我相信总尺寸将介于 2^(n-1) 和2^n-1(含)

    【讨论】:

      猜你喜欢
      • 2015-07-25
      • 2012-05-10
      • 2012-01-01
      • 2022-11-11
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多