problems: add „235. Lowest Common Ancestor of a Binary Search Tree“

Signed-off-by: Matej Focko <mfocko@redhat.com>
This commit is contained in:
Matej Focko 2022-08-12 22:10:33 +02:00
parent 15e6d58b12
commit 9fa6578ce7
Signed by: mfocko
GPG key ID: 7C47D46246790496

View file

@ -0,0 +1,37 @@
/**
* Definition for a binary tree node.
* class TreeNode(var `val`: Int = 0) {
* var left: TreeNode? = null
* var right: TreeNode? = null
* }
*/
class Solution {
fun lowestCommonAncestor(root: TreeNode?, p: TreeNode?, q: TreeNode?): TreeNode? {
var ancestor: TreeNode? = null
var pTrack = root
var qTrack = root
while (pTrack == qTrack && pTrack != null && qTrack != null) {
ancestor = pTrack
if (pTrack!!.`val` == p!!.`val`) {
return p
} else if (p!!.`val` < pTrack!!.`val`) {
pTrack = pTrack.left
} else {
pTrack = pTrack.right
}
if (qTrack!!.`val` == q!!.`val`) {
return q
} else if (q!!.`val` < qTrack!!.`val`) {
qTrack = qTrack.left
} else {
qTrack = qTrack.right
}
}
return ancestor
}
}