Algorithm
235 : Lowest Common Ancestor of a Binary Search Tree ( leetcode / java )
코동이
2020. 10. 30. 11:10

* 해결과정
제목에 이진탐색 트리라고 써있습니다. 이를 적극적으로 활용합니다! (하지만 저는 또 그냥 지나쳤습니다.. ㅜㅜ) 또한 최소 공통 조상에 대한 문제이기도 합니다. 하지만 걱정하지 않아도 되는 것은 이진탐색 트리이기 때문에, 또한 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;
}
}반응형