본문 바로가기
Algorithm

235 : Lowest Common Ancestor of a Binary Search Tree ( leetcode / java )

코동이 2020. 10. 30.

 

* 해결과정

 

 제목에 이진탐색 트리라고 써있습니다. 이를 적극적으로 활용합니다! (하지만 저는 또 그냥 지나쳤습니다.. ㅜㅜ) 또한 최소 공통 조상에 대한 문제이기도 합니다. 하지만 걱정하지 않아도 되는 것은 이진탐색 트리이기 때문에, 또한 p,q가 동시에 주어졌기 때문에 간단하게 해결 할 수 있습니다. 각 해당 노드의 값의 대소비교를 통해 해결합니다.

 

class Solution {
    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
        int parentVal = root.val;
        int pVal = p.val;
        int qVal = q.val;
        
        if(pVal>parentVal && qVal>parentVal) 
            return lowestCommonAncestor(root.right,p,q);
        else if(pVal<parentVal && qVal<parentVal) 
            return lowestCommonAncestor(root.left,p,q);
        else 
            return root;
    }
}
반응형