Skip to content

Commit afba9fb

Browse files
authored
Merge pull request #610 from fartem/2331_Evaluate_Boolean_Binary_Tree
2024-04-24 v. 5.5.3: added "2331. Evaluate Boolean Binary Tree"
2 parents ee8cc0c + 92ed5f1 commit afba9fb

File tree

4 files changed

+60
-1
lines changed

4 files changed

+60
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,3 +413,4 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/).
413413
| 2315. Count Asterisks | [Link](https://leetcode.com/problems/count-asterisks/) | [Link](./lib/easy/2315_count_asterisks.rb) |
414414
| 2319. Check if Matrix Is X-Matrix | [Link](https://leetcode.com/problems/check-if-matrix-is-x-matrix/) | [Link](./lib/easy/2319_check_if_matrix_is_x_matrix.rb) |
415415
| 2325. Decode the Message | [Link](https://leetcode.com/problems/decode-the-message/) | [Link](./lib/easy/2325_decode_the_message.rb) |
416+
| 2331. Evaluate Boolean Binary Tree | [Link](https://leetcode.com/problems/evaluate-boolean-binary-tree/) | [Link](./lib/easy/2331_evaluate_boolean_binary_tree.rb) |

leetcode-ruby.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ require 'English'
55
::Gem::Specification.new do |s|
66
s.required_ruby_version = '>= 3.0'
77
s.name = 'leetcode-ruby'
8-
s.version = '5.5.2'
8+
s.version = '5.5.3'
99
s.license = 'MIT'
1010
s.files = ::Dir['lib/**/*.rb'] + %w[bin/leetcode-ruby README.md LICENSE]
1111
s.executable = 'leetcode-ruby'
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# frozen_string_literal: true
2+
3+
# https://leetcode.com/problems/evaluate-boolean-binary-tree/
4+
# @param {TreeNode} root
5+
# @return {Boolean}
6+
def evaluate_tree(root)
7+
case root.val
8+
when 0
9+
false
10+
when 1
11+
true
12+
when 2
13+
evaluate_tree(root.left) || evaluate_tree(root.right)
14+
else
15+
evaluate_tree(root.left) && evaluate_tree(root.right)
16+
end
17+
end
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# frozen_string_literal: true
2+
3+
require_relative '../test_helper'
4+
require_relative '../../lib/easy/2331_evaluate_boolean_binary_tree'
5+
require_relative '../../lib/common/binary_tree'
6+
require 'minitest/autorun'
7+
8+
class EvaluateBooleanBinaryTreeTest < ::Minitest::Test
9+
def test_default
10+
assert(
11+
evaluate_tree(
12+
::TreeNode.new(
13+
2,
14+
::TreeNode.new(1),
15+
::TreeNode.new(
16+
3,
17+
::TreeNode.new(0),
18+
::TreeNode.new(1)
19+
)
20+
)
21+
)
22+
)
23+
assert(
24+
!evaluate_tree(
25+
::TreeNode.new(0)
26+
)
27+
)
28+
end
29+
30+
def test_additional
31+
assert(
32+
!evaluate_tree(
33+
::TreeNode.new(
34+
3,
35+
::TreeNode.new(0),
36+
::TreeNode.new(1)
37+
)
38+
)
39+
)
40+
end
41+
end

0 commit comments

Comments
 (0)