Validate Three Nodes

h, h
recursive
// This is an input class. Do not edit.
class BST {
constructor(value) {
this.value = value;
this.left = null;
this.right = null;
}
}
function validateThreeNodes(nodeOne, nodeTwo, nodeThree) {
const isNodeOneAncestor = isAncester(nodeOne, nodeTwo);
if (isNodeOneAncestor) {
return isAncester(nodeTwo, nodeThree);
}
const isNodeThreeAncestor = isAncester(nodeThree, nodeTwo);
if (isNodeThreeAncestor) {
return isAncester(nodeTwo, nodeOne);
}
return false;
}
function isAncester(node1, node2) {
if (node1 === null) {
return false;
}
if (node1 === node2) return true;
const left = isAncester(node1.left, node2);
const right = isAncester(node1.right, node2);
return left || right;
}
// Do not edit the lines below.
exports.BST = BST;
exports.validateThreeNodes = validateThreeNodes;h, 1
iteration
optmized
d, 1 (d is distance between nodeOne and nodeTwo)
Last updated