Дано бинарное дерево. Найдите наименьшего общего предка (LCA) двух узлов p и q.
LCA определяется как наиболее глубокий узел, который является предком и p, и q (узел может быть предком самого себя).
// 3
// / \
// 5 1
// / \ / \
// 6 2 0 8
// / \
// 7 4
lowestCommonAncestor(root, 5, 1) // => 3
lowestCommonAncestor(root, 5, 4) // => 5
В коде уже определены TreeNode, buildTree(arr) и findNode(root, val).
tree = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1
3
tree = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 4
5