首页 > 其他 > 详细

LeetCode 235: Lowest Common Ancestor of a Binary Search Tree

时间:2020-05-07 12:42:27      阅读:47      评论:0      收藏:0      [点我收藏+]
/**
 * 235. Lowest Common Ancestor of a Binary Search Tree
 * 1. Time:O(n)  Space:O(n)
 * 2. Time:O(n)  Space:O(1)
 */

// 1. Time:O(n)  Space:O(n)
class Solution {
    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
        int val = root.val;
        int val1 = p.val;
        int val2 = q.val;
        if(val1<val && val2<val)
            return lowestCommonAncestor(root.left,p,q);
        else if(val1>val && val2>val)
            return lowestCommonAncestor(root.right,p,q);
        else
            return root;
    }
}

// 2. Time:O(n)  Space:O(1)
class Solution {
    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
        int pVal = p.val;
        int qVal = q.val;
        TreeNode cur = root;
        while(cur!=null){
            int rootVal = cur.val;
            if(pVal<rootVal && qVal<rootVal)
                cur = cur.left;
            else if(pVal>rootVal && qVal>rootVal)
                cur = cur.right;
            else
                return cur;
        }
        return null;
    }
}

LeetCode 235: Lowest Common Ancestor of a Binary Search Tree

原文:https://www.cnblogs.com/AAAmsl/p/12842077.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!