我在一次面试中被问到了这个问题,虽然我知道如何解决它,但我还是没能回答出来。原因是问题是这样给我的:
class Node{
int val;
Node *left, *right;
};
int LCA(int a, int b){
//your code here
}
面试官要求我找到a和b的最近公共祖先。我问是否给出了我们正在搜索的树的根指针,他说没有。因此,我不知道该如何解决这个问题,因为我甚至没有树可供使用。
在这种情况下是否可能找到最近公共祖先?我应该假设我们被给予了一个作为树根的全局Node*或其他东西吗?有人遇到过类似的问题吗?
a
和b
都是Node
,而且返回的祖先也是Node
,那么应该不是FindLCA(int a, int b)
,而是Node LCA(Node a, Node b)
,对吗? - chiliNUT