
以下为代码:
class LCA {
public:
int getLCA(int a, int b) {
int i = 0, j = 0;
int k = 0;
while (k <= a)
{
k = pow(2.0, i + 1);
i++;
}
k = 0;
while (k <= b)
{
k = pow(2.0, j + 1);
j++;
}
while (i>j)
{
a = a / 2;
i--;
}
while (i<j)
{
b = b / 2;
j--;
}
while(a != b)
{
a = a / 2;
b = b / 2;
}
return a;
}
};
LCA算法解析
本文深入探讨了一种寻找二叉树中两个节点最低公共祖先(LCA)的算法实现。通过不断除以2的方法,该算法有效地定位了指定节点的共同祖先,为理解复杂树结构提供了清晰的思路。
1962

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



