1.csu -1213二叉树结点公共祖先
原理:parent=i/2;
#include<stdio.h>
int main()
{
int n,m;
while(~scanf("%d%d",&n,&m))
{
while(n!=m)
{
if(n>m)//小的那个可能是祖先,所以n/2,(找大数祖先)
n=n/2;
else
m/=2;
}
printf("%d\n",m);
}
return 0;
}
本文介绍了一种用于寻找二叉树中两个节点的最近公共祖先的有效算法。通过不断将节点向上追溯到其父节点,直到找到第一个相同的节点,即为所求的公共祖先。该算法特别适用于数据结构和算法初学者。
1.csu -1213二叉树结点公共祖先
原理:parent=i/2;
#include<stdio.h>
int main()
{
int n,m;
while(~scanf("%d%d",&n,&m))
{
while(n!=m)
{
if(n>m)//小的那个可能是祖先,所以n/2,(找大数祖先)
n=n/2;
else
m/=2;
}
printf("%d\n",m);
}
return 0;
}

被折叠的 条评论
为什么被折叠?