如果这两个节点多次出现,则两个节点的二叉树的lca

时间:2013-06-17 07:39:00

标签: c++ binary-tree least-common-ancestor

这是我的二叉树的实现(这不是Lca的代码只是二叉树的正常实现,只是为了让我知道如何构造二叉树)

void insert(int n)
{
create(&root,n);
}
void create(node** temp,int n)
{
if(root==NULL)
{
(*temp)=new node;
(*temp)->data=n;
(*temp)->right=NULL;
(*temp)->left=NULL;
root=*temp;
}
else
{
if((*temp)==NULL)
{
(*temp)=new node;
(*temp)->data=n;
(*temp)->right=NULL;
(*temp)->left=NULL;
}
else
{
char c;
cout<<"enter the direction";
cout<<endl;
cin>>c;
if(c=='l')
create(&((*temp)->left),n);
else
create(&((*temp)->right),n);
}
}
}

现在我的问题是如果在右子树和左子树中两个节点相同,如何找到两个节点的最低共同祖先 例如 lca of 4 and 5 see that 4 and 5 are there in both right sub tree and left sub tree of root(two times ocurred)

那么什么应该是这个

的最低共同祖先

我在下面的问题中理解了尼克约翰逊的答案,但我不理解如何做以上类型的树

How to find the lowest common ancestor of two nodes in any binary tree?

0 个答案:

没有答案