From 9141cd60e1d4fb683982d6b0420499af4a21a52f Mon Sep 17 00:00:00 2001 From: aadil42 <77232799+aadil42@users.noreply.github.com> Date: Tue, 13 Aug 2024 21:54:10 +0530 Subject: [PATCH 1/6] Create 2331-evaluate-boolean-binary-tree.js --- .../2331-evaluate-boolean-binary-tree.js | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 javascript/2331-evaluate-boolean-binary-tree.js diff --git a/javascript/2331-evaluate-boolean-binary-tree.js b/javascript/2331-evaluate-boolean-binary-tree.js new file mode 100644 index 000000000..27743aaea --- /dev/null +++ b/javascript/2331-evaluate-boolean-binary-tree.js @@ -0,0 +1,30 @@ +/** + * Definition for a binary tree node. + * function TreeNode(val, left, right) { + * this.val = (val===undefined ? 0 : val) + * this.left = (left===undefined ? null : left) + * this.right = (right===undefined ? null : right) + * } + */ +/** + * DFS | Tree-traversal + * Time O(n) | Space O(1) + * https://leetcode.com/problems/evaluate-boolean-binary-tree + * @param {TreeNode} root + * @return {boolean} + */ +var evaluateTree = function(root) { + + const dfs = (node) => { + if(!node.left && !node.right) return node.val; + + if(node.val === 2) { + return dfs(node.left) || dfs(node.right); + } + if(node.val === 3) { + return dfs(node.left) && dfs(node.right); + } + } + + return (dfs(root) && true) || false; +}; From 6bbd404975ec8cb85d6a7c5eb7730a027b5cd6c8 Mon Sep 17 00:00:00 2001 From: aadil42 <77232799+aadil42@users.noreply.github.com> Date: Sun, 1 Sep 2024 21:57:36 +0530 Subject: [PATCH 2/6] Update 2331-evaluate-boolean-binary-tree.js avoiding nested function. --- .../2331-evaluate-boolean-binary-tree.js | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/javascript/2331-evaluate-boolean-binary-tree.js b/javascript/2331-evaluate-boolean-binary-tree.js index 27743aaea..33ab41738 100644 --- a/javascript/2331-evaluate-boolean-binary-tree.js +++ b/javascript/2331-evaluate-boolean-binary-tree.js @@ -14,17 +14,16 @@ * @return {boolean} */ var evaluateTree = function(root) { - - const dfs = (node) => { - if(!node.left && !node.right) return node.val; - - if(node.val === 2) { - return dfs(node.left) || dfs(node.right); - } - if(node.val === 3) { - return dfs(node.left) && dfs(node.right); - } - } - return (dfs(root) && true) || false; }; + +var dfs = (node) => { + if(!node.left && !node.right) return node.val; + + if(node.val === 2) { + return dfs(node.left) || dfs(node.right); + } + if(node.val === 3) { + return dfs(node.left) && dfs(node.right); + } +} From 42e9368a934c5508f6d5b84b577b4b571e58750e Mon Sep 17 00:00:00 2001 From: aadil42 <77232799+aadil42@users.noreply.github.com> Date: Mon, 2 Sep 2024 21:42:49 +0530 Subject: [PATCH 3/6] Update 2331-evaluate-boolean-binary-tree.js --- javascript/2331-evaluate-boolean-binary-tree.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/javascript/2331-evaluate-boolean-binary-tree.js b/javascript/2331-evaluate-boolean-binary-tree.js index 33ab41738..0823837e4 100644 --- a/javascript/2331-evaluate-boolean-binary-tree.js +++ b/javascript/2331-evaluate-boolean-binary-tree.js @@ -17,13 +17,12 @@ var evaluateTree = function(root) { return (dfs(root) && true) || false; }; -var dfs = (node) => { +const dfs = (node) => { if(!node.left && !node.right) return node.val; - if(node.val === 2) { - return dfs(node.left) || dfs(node.right); - } - if(node.val === 3) { - return dfs(node.left) && dfs(node.right); - } + const is2 = (node.val === 2); + if(is2) return dfs(node.left) || dfs(node.right); + + const is3 = (node.val === 3); + if(is3) return dfs(node.left) && dfs(node.right); } From a1307b80aab1d80f8533ba787759bc0a4262846c Mon Sep 17 00:00:00 2001 From: aadil42 <77232799+aadil42@users.noreply.github.com> Date: Fri, 18 Oct 2024 22:27:24 +0530 Subject: [PATCH 4/6] directly return expected value from DFS. Add spaces after control flow statements. --- javascript/2331-evaluate-boolean-binary-tree.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/javascript/2331-evaluate-boolean-binary-tree.js b/javascript/2331-evaluate-boolean-binary-tree.js index 0823837e4..9fcab57ec 100644 --- a/javascript/2331-evaluate-boolean-binary-tree.js +++ b/javascript/2331-evaluate-boolean-binary-tree.js @@ -14,15 +14,17 @@ * @return {boolean} */ var evaluateTree = function(root) { - return (dfs(root) && true) || false; + return dfs(root); }; const dfs = (node) => { - if(!node.left && !node.right) return node.val; + if (!node.left && !node.right && node.val) return true; + if (!node.left && !node.right && !node.val) return false; const is2 = (node.val === 2); - if(is2) return dfs(node.left) || dfs(node.right); + if (is2) return dfs(node.left) || dfs(node.right); const is3 = (node.val === 3); - if(is3) return dfs(node.left) && dfs(node.right); + if (is3) return dfs(node.left) && dfs(node.right); + } From fa30ca499c64f974b43ea7fa23a7324e41e24624 Mon Sep 17 00:00:00 2001 From: aadil42 <77232799+aadil42@users.noreply.github.com> Date: Wed, 23 Oct 2024 10:20:16 +0530 Subject: [PATCH 5/6] Update 2331-evaluate-boolean-binary-tree.js Make if statement as one. --- javascript/2331-evaluate-boolean-binary-tree.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/javascript/2331-evaluate-boolean-binary-tree.js b/javascript/2331-evaluate-boolean-binary-tree.js index 9fcab57ec..a64d95e70 100644 --- a/javascript/2331-evaluate-boolean-binary-tree.js +++ b/javascript/2331-evaluate-boolean-binary-tree.js @@ -18,8 +18,7 @@ var evaluateTree = function(root) { }; const dfs = (node) => { - if (!node.left && !node.right && node.val) return true; - if (!node.left && !node.right && !node.val) return false; + if (!node.left && !node.right) return (node.val) ? true : false; const is2 = (node.val === 2); if (is2) return dfs(node.left) || dfs(node.right); From c609600a9842f1e2c22b7fa4c2de00b501e6969d Mon Sep 17 00:00:00 2001 From: aadil42 <77232799+aadil42@users.noreply.github.com> Date: Thu, 24 Oct 2024 21:02:39 +0530 Subject: [PATCH 6/6] Update 2331-evaluate-boolean-binary-tree.js --- javascript/2331-evaluate-boolean-binary-tree.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/javascript/2331-evaluate-boolean-binary-tree.js b/javascript/2331-evaluate-boolean-binary-tree.js index a64d95e70..8f9018b57 100644 --- a/javascript/2331-evaluate-boolean-binary-tree.js +++ b/javascript/2331-evaluate-boolean-binary-tree.js @@ -18,8 +18,10 @@ var evaluateTree = function(root) { }; const dfs = (node) => { - if (!node.left && !node.right) return (node.val) ? true : false; - + + if (!node.left && !node.right && node.val) return true; + if (!node.left && !node.right && !node.val) return false; + const is2 = (node.val === 2); if (is2) return dfs(node.left) || dfs(node.right);