一种思路是建一个Hash,从2个节点向父节点走,你一步我一步,把经过的节点加入Hash,如果发现某节点已经在里面了,则该节点为公共祖先。此方法的不足之处在于使用Hash,空间占用较大。 另一种方法是先从2个节点向根节点走一遍,统计出两个节点的深度(d1,d2,设d1 > d2),然后再走一遍,先走深度较深的那个节点,对应点1,一直走到点1同点2的深度相同,再一起走,然后只需要检测每一个的父节点是否为同一个就可以了