二叉树

二叉树

http://www.nowcoder.com/questionTerminal/5b80ab166efa4551844657603227caeb

思路

如果是普通的二叉树,求公共父节点的话,就是遍历某个根节点的左右子树,看看这两个节点是否在一棵子树上,在的话就继续遍历子树,不在的话就直接返回根节点。

而这道题,很容易看出来一个节点 i 的父节点就是 i/2,那就很简单了,不断除以 2 直到相等就好了。

#include<iostream>

using namespace std;

int main(){
    int x, y;
    while(cin >> x >> y){
        while(x != y){
            if(x > y) x /= 2;
            else y /= 2;
        }
        cout << x << endl;
    }
    return 0;
}
算法题解 文章被收录于专栏

不定期更新一些算法题解,有什么问题可以随时留言~

全部评论

相关推荐

2024-12-27 10:21
已编辑
海南师范大学 媒介策划
到我怀里来:身高体重住址这些就别写了,留几个关键的就行,工作经历突出重点写详细点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务