kth-smallest-in-bst
var kthSmallest = function(root, k) {
let kSmallestElement = NaN;
let findLastKNodes = (node, isRightNode, parentCountFromLeftTree) => {
var nthElement = 1;
if(node.left) {
nthElement += findLastKNodes(node.left, isRightNode);
}
if (node.right) {
findLastKNodes(node.right, true, nthElement);
nthElement += 1;
}
if(isRightNode) {
nthElement += parentCountFromLeftTree;
}
if (nthElement === k) {
kSmallestElement = node.val;
}
return nthElement;
}
findLastKNodes(root, false)
return kSmallestElement;
};