我们当前项目的一个功能是找出两个节点的关系。一个节点可以由另外两个节点共同生成。简单来说,我把它们当成一个家谱,如下:
A B
/ \ |
C D E
| \ /
F G
我将编写一个函数来确定两个节点是否遗传连接,例如:
is_genetic_connected("D", "F"); // returns true because they have common ancestor: "A"
is_genetic_connected("E", "F"); // returns false
我不确定我们是否可以在这里应用LCA,或者有没有其他好的算法来解决这个问题?