我的问题是找到一个通用树的 LCA,该树将从 txt 文件中的列表创建。我正在寻找最有效的实施。数据形式为:Id、info、ParentId
数据不以任何方式排序。我正在考虑创建一棵树,但这至少需要 O (nlogn)。虽然日志基数不是 2。这取决于我想的孩子的平均数量。
相反,如果我将节点存储在哈希表中,那么找到 LCA 会比 O (nlogn) 更好。正确的?对于目标节点的每个父节点,我必须检查它是否已被源节点访问(假设我们从源节点开始到根节点并将途中的所有父节点标记为已访问),这需要 O (登录)。因为,我们只检查父母,它会比 O(nlogn) 更好。
有更好的主意吗?