diff --git a/coding_interviews/algoexpert/evaluate-expression-tree/evaluate-expression-tree-with-trunc.js b/coding_interviews/algoexpert/evaluate-expression-tree/evaluate-expression-tree-with-trunc.js new file mode 100644 index 0000000..440d943 --- /dev/null +++ b/coding_interviews/algoexpert/evaluate-expression-tree/evaluate-expression-tree-with-trunc.js @@ -0,0 +1,13 @@ +function evaluateExpressionTree(tree) { + if (!tree) return null; + + let leftValue = evaluateExpressionTree(tree.left); + let rightValue = evaluateExpressionTree(tree.right); + + if (!leftValue && !rightValue) return tree.value; + + if (tree.value === -1) return leftValue + rightValue; + if (tree.value === -2) return leftValue - rightValue; + if (tree.value === -3) return Math.trunc(leftValue / rightValue); + if (tree.value === -4) return leftValue * rightValue; +}