【发布时间】:2015-06-17 19:18:12
【问题描述】:
目前,我正在开发一个程序,其中一个步骤是检查一个叶子 c 是否与二叉树 T 中的另外两个叶子 a 和 b 位于同一子树中。我目前的方法如下:首先,找到T中每对叶子的LCA,并将其存储在字典中。然后,对于树中的每个节点,找到作为它的后代的所有叶子,并将其存储在字典中。然后当我需要确定c是否与a和b在同一个子树中时,我找到a和b的LCA,并检查c是否是它的后代。
我需要对许多不同的 a 和 b 对运行此步骤,并在有多达 600 个叶子的二叉树上执行此操作,因此是否有更快的算法,或者使用更少内存的算法,可以做到这一点同样的任务?谢谢。
【问题讨论】:
标签: algorithm tree least-common-ancestor