9/27二叉搜索树的最近公共祖先

1.二叉搜索树的最近公共祖先
图片说明
思路:一次遍历(递归)
图片说明

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */

class Solution {
public:
    TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
        TreeNode* ancestor = root;
        while (true) {
            if (p->val < ancestor->val && q->val < ancestor->val) {
                ancestor = ancestor->left;
            }
            else if (p->val > ancestor->val && q->val > ancestor->val) {
                ancestor = ancestor->right;
            }
            else {
                break;
            }
        }
        return ancestor;
    }
};
全部评论

相关推荐

华为海思,双非本硕985,现已进池,会卡本科吗?
鼠鼠心态完全放平:排序,你如果手上的活很好,就不看,如果大家差不多,那就看
投递海思半导体等公司10个岗位 > 华为求职进展汇总
点赞 评论 收藏
分享
10-11 17:30
湖南大学 C++
牛客160515121号:同学,看看我司,我的最新动态,绿灯直达,免笔试~
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务