diff --git a/leetcode-ruby.gemspec b/leetcode-ruby.gemspec index 7ca2b0fc..1a969282 100644 --- a/leetcode-ruby.gemspec +++ b/leetcode-ruby.gemspec @@ -5,7 +5,7 @@ require 'English' ::Gem::Specification.new do |s| s.required_ruby_version = '>= 3.0' s.name = 'leetcode-ruby' - s.version = '8.2.5.1' + s.version = '8.2.5.2' s.license = 'MIT' s.files = ::Dir['lib/**/*.rb'] + %w[README.md] s.executable = 'leetcode-ruby' diff --git a/lib/medium/129_sum_root_to_leaf_numbers.rb b/lib/medium/129_sum_root_to_leaf_numbers.rb index 330216e8..33e8aaad 100644 --- a/lib/medium/129_sum_root_to_leaf_numbers.rb +++ b/lib/medium/129_sum_root_to_leaf_numbers.rb @@ -3,21 +3,19 @@ # https://leetcode.com/problems/sum-root-to-leaf-numbers/ # @param {TreeNode} root # @return {Integer} -def sum_numbers(root) - sum129(root, 0) -end +def sum_numbers(root) = sum_for_root_to_leaf_number(root, 0) private # @param {TreeNode} node # @param {Integer} curr # @return {Integer} -def sum129(node, curr) +def sum_for_root_to_leaf_number(node, curr) return 0 unless node curr = curr * 10 + node.val return curr if node.left.nil? && node.right.nil? - sum129(node.left, curr) + sum129(node.right, curr) + sum_for_root_to_leaf_number(node.left, curr) + sum_for_root_to_leaf_number(node.right, curr) end diff --git a/test/medium/test_129_sum_root_to_leaf_numbers.rb b/test/medium/test_129_sum_root_to_leaf_numbers.rb index 20c03a48..ee856400 100644 --- a/test/medium/test_129_sum_root_to_leaf_numbers.rb +++ b/test/medium/test_129_sum_root_to_leaf_numbers.rb @@ -10,10 +10,8 @@ def test_default_one assert_equal( 25, sum_numbers( - ::TreeNode.new( - 1, - ::TreeNode.new(2), - ::TreeNode.new(3) + ::TreeNode.build_tree( + [1, 2, 3] ) ) ) @@ -23,14 +21,8 @@ def test_default_two assert_equal( 1026, sum_numbers( - ::TreeNode.new( - 4, - ::TreeNode.new( - 9, - ::TreeNode.new(5), - ::TreeNode.new(1) - ), - ::TreeNode.new(0) + ::TreeNode.build_tree( + [4, 9, 0, 5, 1] ) ) ) diff --git a/test/medium/test_173_binary_search_tree_iterator.rb b/test/medium/test_173_binary_search_tree_iterator.rb index dab88a89..525834d6 100644 --- a/test/medium/test_173_binary_search_tree_iterator.rb +++ b/test/medium/test_173_binary_search_tree_iterator.rb @@ -8,14 +8,8 @@ class BinarySearchTreeIndicatorTest < ::Minitest::Test def test_default_one bst_iterator = ::BSTIterator.new( - ::TreeNode.new( - 7, - ::TreeNode.new(3), - ::TreeNode.new( - 15, - ::TreeNode.new(9), - ::TreeNode.new(20) - ) + ::TreeNode.build_tree( + [7, 3, 15, nil, nil, 9, 20] ) ) diff --git a/test/medium/test_199_binary_tree_right_side_view.rb b/test/medium/test_199_binary_tree_right_side_view.rb index 19b358f3..9ded3fa1 100644 --- a/test/medium/test_199_binary_tree_right_side_view.rb +++ b/test/medium/test_199_binary_tree_right_side_view.rb @@ -10,18 +10,8 @@ def test_default_one assert_equal( [1, 3, 4], right_side_view( - ::TreeNode.new( - 1, - ::TreeNode.new( - 2, - nil, - ::TreeNode.new(5) - ), - ::TreeNode.new( - 3, - nil, - ::TreeNode.new(4) - ) + ::TreeNode.build_tree( + [1, 2, 3, nil, 5, nil, 4] ) ) ) @@ -29,18 +19,27 @@ def test_default_one def test_default_two assert_equal( - [1, 3], + [1, 3, 4, 5], right_side_view( - ::TreeNode.new( - 1, - nil, - ::TreeNode.new(3) + ::TreeNode.build_tree( + [1, 2, 3, 4, nil, nil, nil, 5] ) ) ) end def test_default_three + assert_equal( + [1, 3], + right_side_view( + ::TreeNode.build_tree( + [1, nil, 3] + ) + ) + ) + end + + def test_default_four assert_equal( [], right_side_view(nil) diff --git a/test/medium/test_230_kth_smallest_element_in_a_bst.rb b/test/medium/test_230_kth_smallest_element_in_a_bst.rb index d6b25e1b..58ac099f 100644 --- a/test/medium/test_230_kth_smallest_element_in_a_bst.rb +++ b/test/medium/test_230_kth_smallest_element_in_a_bst.rb @@ -10,14 +10,8 @@ def test_default_one assert_equal( 1, kth_smallest( - ::TreeNode.new( - 3, - ::TreeNode.new( - 1, - nil, - ::TreeNode.new(2) - ), - ::TreeNode.new(4) + ::TreeNode.build_tree( + [3, 1, 4, nil, 2] ), 1 ) @@ -28,18 +22,8 @@ def test_default_two assert_equal( 3, kth_smallest( - ::TreeNode.new( - 5, - ::TreeNode.new( - 3, - ::TreeNode.new( - 2, - ::TreeNode.new(1), - nil - ), - ::TreeNode.new(4) - ), - ::TreeNode.new(6) + ::TreeNode.build_tree( + [5, 3, 6, 2, 4, nil, nil, 1] ), 3 ) diff --git a/test/medium/test_235_lowest_common_ancestor_of_a_binary_search_tree.rb b/test/medium/test_235_lowest_common_ancestor_of_a_binary_search_tree.rb index 17b7b97f..a20ef2cd 100644 --- a/test/medium/test_235_lowest_common_ancestor_of_a_binary_search_tree.rb +++ b/test/medium/test_235_lowest_common_ancestor_of_a_binary_search_tree.rb @@ -10,25 +10,15 @@ def test_default_one assert_equal( 6, lowest_common_ancestor( - ::TreeNode.new( - 6, - ::TreeNode.new( - 2, - ::TreeNode.new(0), - ::TreeNode.new( - 4, - ::TreeNode.new(3), - ::TreeNode.new(5) - ) - ), - ::TreeNode.new( - 8, - ::TreeNode.new(7), - ::TreeNode.new(9) - ) + ::TreeNode.build_tree( + [6, 2, 8, 0, 4, 7, 9, nil, nil, 3, 5] ), - ::TreeNode.new(2), - ::TreeNode.new(8) + ::TreeNode.build_tree( + [2] + ), + ::TreeNode.build_tree( + [8] + ) ).val ) end @@ -37,25 +27,15 @@ def test_default_two assert_equal( 2, lowest_common_ancestor( - ::TreeNode.new( - 6, - ::TreeNode.new( - 2, - ::TreeNode.new(0), - ::TreeNode.new( - 4, - ::TreeNode.new(3), - ::TreeNode.new(5) - ) - ), - ::TreeNode.new( - 8, - ::TreeNode.new(7), - ::TreeNode.new(9) - ) + ::TreeNode.build_tree( + [6, 2, 8, 0, 4, 7, 9, nil, nil, 3, 5] + ), + ::TreeNode.build_tree( + [2] ), - ::TreeNode.new(2), - ::TreeNode.new(4) + ::TreeNode.build_tree( + [4] + ) ).val ) end @@ -64,13 +44,15 @@ def test_default_three assert_equal( 2, lowest_common_ancestor( - ::TreeNode.new( - 2, - ::TreeNode.new(1), - nil + ::TreeNode.build_tree( + [2, 1] ), - ::TreeNode.new(2), - ::TreeNode.new(1) + ::TreeNode.build_tree( + [2] + ), + ::TreeNode.build_tree( + [1] + ) ).val ) end @@ -79,25 +61,15 @@ def test_additional_one assert_equal( 4, lowest_common_ancestor( - ::TreeNode.new( - 6, - ::TreeNode.new( - 2, - ::TreeNode.new(0), - ::TreeNode.new( - 4, - ::TreeNode.new(3), - ::TreeNode.new(5) - ) - ), - ::TreeNode.new( - 8, - ::TreeNode.new(7), - ::TreeNode.new(9) - ) + ::TreeNode.build_tree( + [6, 2, 8, 0, 4, 7, 9, nil, nil, 3, 5] + ), + ::TreeNode.build_tree( + [3] ), - ::TreeNode.new(3), - ::TreeNode.new(5) + ::TreeNode.build_tree( + [5] + ) ).val ) end diff --git a/test/medium/test_236_lowest_common_ancestor_of_a_binary_tree.rb b/test/medium/test_236_lowest_common_ancestor_of_a_binary_tree.rb index bfb477d9..3a36c63d 100644 --- a/test/medium/test_236_lowest_common_ancestor_of_a_binary_tree.rb +++ b/test/medium/test_236_lowest_common_ancestor_of_a_binary_tree.rb @@ -10,25 +10,15 @@ def test_default_one assert_equal( 3, lowest_common_ancestor236( - ::TreeNode.new( - 3, - ::TreeNode.new( - 5, - ::TreeNode.new(6), - ::TreeNode.new( - 2, - ::TreeNode.new(7), - ::TreeNode.new(4) - ) - ), - ::TreeNode.new( - 1, - ::TreeNode.new(0), - ::TreeNode.new(8) - ) + ::TreeNode.build_tree( + [3, 5, 1, 6, 2, 0, 8, nil, nil, 7, 4] ), - ::TreeNode.new(5), - ::TreeNode.new(1) + ::TreeNode.build_tree( + [5] + ), + ::TreeNode.build_tree( + [1] + ) ).val ) end @@ -37,25 +27,15 @@ def test_default_two assert_equal( 5, lowest_common_ancestor236( - ::TreeNode.new( - 3, - ::TreeNode.new( - 5, - ::TreeNode.new(6), - ::TreeNode.new( - 2, - ::TreeNode.new(7), - ::TreeNode.new(4) - ) - ), - ::TreeNode.new( - 1, - ::TreeNode.new(0), - ::TreeNode.new(8) - ) + ::TreeNode.build_tree( + [3, 5, 1, 6, 2, 0, 8, nil, nil, 7, 4] + ), + ::TreeNode.build_tree( + [5] ), - ::TreeNode.new(5), - ::TreeNode.new(4) + ::TreeNode.build_tree( + [4] + ) ).val ) end @@ -64,13 +44,15 @@ def test_default_three assert_equal( 1, lowest_common_ancestor236( - ::TreeNode.new( - 1, - ::TreeNode.new(2), - nil + ::TreeNode.build_tree( + [1, 2] + ), + ::TreeNode.build_tree( + [1] ), - ::TreeNode.new(1), - ::TreeNode.new(2) + ::TreeNode.build_tree( + [2] + ) ).val ) end diff --git a/test/medium/test_437_path_sum_iii.rb b/test/medium/test_437_path_sum_iii.rb index 9ee37d83..a894ac75 100644 --- a/test/medium/test_437_path_sum_iii.rb +++ b/test/medium/test_437_path_sum_iii.rb @@ -10,26 +10,8 @@ def test_default_one assert_equal( 3, path_sum437( - ::TreeNode.new( - 10, - ::TreeNode.new( - 5, - ::TreeNode.new( - 3, - ::TreeNode.new(3), - ::TreeNode.new(-2) - ), - ::TreeNode.new( - 2, - nil, - ::TreeNode.new(1) - ) - ), - ::TreeNode.new( - -3, - ::TreeNode.new(11), - nil - ) + ::TreeNode.build_tree( + [10, 5, -3, 3, 2, nil, 11, 3, -2, nil, 1] ), 8 ) @@ -40,26 +22,8 @@ def test_default_two assert_equal( 3, path_sum437( - ::TreeNode.new( - 5, - ::TreeNode.new( - 4, - ::TreeNode.new( - 11, - ::TreeNode.new(7), - ::TreeNode.new(2) - ), - nil - ), - ::TreeNode.new( - 8, - ::TreeNode.new(13), - ::TreeNode.new( - 4, - ::TreeNode.new(5), - ::TreeNode.new(1) - ) - ) + ::TreeNode.build_tree( + [5, 4, 8, 11, nil, 13, 4, 7, 2, nil, nil, 5, 1] ), 22 ) diff --git a/test/medium/test_449_serialize_and_deserialize_bst.rb b/test/medium/test_449_serialize_and_deserialize_bst.rb index 0cf01a23..6226cc36 100644 --- a/test/medium/test_449_serialize_and_deserialize_bst.rb +++ b/test/medium/test_449_serialize_and_deserialize_bst.rb @@ -7,33 +7,29 @@ class SerializeAndDeserializeBSTTest < ::Minitest::Test def test_default_one - node = ::TreeNode.new( - 2, - ::TreeNode.new(1), - ::TreeNode.new(3) + node = ::TreeNode.build_tree( + [2, 1, 3] ) result = serialize(node) assert( ::TreeNode.are_equals( deserialize(result), - ::TreeNode.new( - 2, - ::TreeNode.new(1), - ::TreeNode.new(3) + ::TreeNode.build_tree( + [2, 1, 3] ) ) ) end def test_default_two - node = ::TreeNode.new + node = ::TreeNode.build_tree([]) result = serialize(node) assert( ::TreeNode.are_equals( deserialize(result), - ::TreeNode.new + ::TreeNode.build_tree([]) ) ) end diff --git a/test/medium/test_450_delete_node_in_a_bst.rb b/test/medium/test_450_delete_node_in_a_bst.rb index 449f24c3..10132190 100644 --- a/test/medium/test_450_delete_node_in_a_bst.rb +++ b/test/medium/test_450_delete_node_in_a_bst.rb @@ -9,32 +9,12 @@ class DeleteNodeInABSTTest < ::Minitest::Test def test_default_one assert( ::TreeNode.are_equals( - ::TreeNode.new( - 5, - ::TreeNode.new( - 4, - ::TreeNode.new(2), - nil - ), - ::TreeNode.new( - 6, - nil, - ::TreeNode.new(7) - ) + ::TreeNode.build_tree( + [5, 4, 6, 2, nil, nil, 7] ), delete_node450( - ::TreeNode.new( - 5, - ::TreeNode.new( - 3, - ::TreeNode.new(2), - ::TreeNode.new(4) - ), - ::TreeNode.new( - 6, - nil, - ::TreeNode.new(7) - ) + ::TreeNode.build_tree( + [5, 3, 6, 2, 4, nil, 7] ), 3 ) @@ -45,32 +25,12 @@ def test_default_one def test_default_two assert( ::TreeNode.are_equals( - ::TreeNode.new( - 5, - ::TreeNode.new( - 2, - nil, - ::TreeNode.new(4) - ), - ::TreeNode.new( - 6, - nil, - ::TreeNode.new(7) - ) + ::TreeNode.build_tree( + [5, 3, 6, 2, 4, nil, 7] ), delete_node450( - ::TreeNode.new( - 5, - ::TreeNode.new( - 2, - nil, - ::TreeNode.new(4) - ), - ::TreeNode.new( - 6, - nil, - ::TreeNode.new(7) - ) + ::TreeNode.build_tree( + [5, 3, 6, 2, 4, nil, 7] ), 0 ) @@ -93,16 +53,12 @@ def test_default_three def test_additional_one assert( ::TreeNode.are_equals( - ::TreeNode.new( - 10, - ::TreeNode.new(10), - ::TreeNode.new(10) + ::TreeNode.build_tree( + [10, 10, 10] ), delete_node450( - ::TreeNode.new( - 10, - ::TreeNode.new(10), - ::TreeNode.new(10) + ::TreeNode.build_tree( + [10, 10, 10] ), 20 ) @@ -113,12 +69,12 @@ def test_additional_one def test_additional_two assert( ::TreeNode.are_equals( - ::TreeNode.new(10), + ::TreeNode.build_tree( + [10] + ), delete_node450( - ::TreeNode.new( - 8, - ::TreeNode.new(10), - nil + ::TreeNode.build_tree( + [8, 10] ), 8 ) diff --git a/test/medium/test_508_most_frequent_subtree_sum.rb b/test/medium/test_508_most_frequent_subtree_sum.rb index 9113d3c5..37c0bb10 100644 --- a/test/medium/test_508_most_frequent_subtree_sum.rb +++ b/test/medium/test_508_most_frequent_subtree_sum.rb @@ -10,10 +10,8 @@ def test_default_one assert_equal( [2, -3, 4], find_frequent_tree_sum( - ::TreeNode.new( - 5, - ::TreeNode.new(2), - ::TreeNode.new(-3) + ::TreeNode.build_tree( + [5, 2, -3] ) ) ) @@ -23,10 +21,8 @@ def test_default_two assert_equal( [2], find_frequent_tree_sum( - ::TreeNode.new( - 5, - ::TreeNode.new(2), - ::TreeNode.new(-5) + ::TreeNode.build_tree( + [5, 2, -5] ) ) ) diff --git a/test/medium/test_513_find_bottom_left_tree_value.rb b/test/medium/test_513_find_bottom_left_tree_value.rb index 46436ab0..bbd4de06 100644 --- a/test/medium/test_513_find_bottom_left_tree_value.rb +++ b/test/medium/test_513_find_bottom_left_tree_value.rb @@ -10,10 +10,8 @@ def test_default_one assert_equal( 1, find_bottom_left_value( - ::TreeNode.new( - 2, - ::TreeNode.new(1), - ::TreeNode.new(3) + ::TreeNode.build_tree( + [2, 1, 3] ) ) ) @@ -23,22 +21,8 @@ def test_default_two assert_equal( 7, find_bottom_left_value( - ::TreeNode.new( - 1, - ::TreeNode.new( - 2, - ::TreeNode.new(4), - nil - ), - ::TreeNode.new( - 3, - ::TreeNode.new( - 5, - ::TreeNode.new(7), - nil - ), - ::TreeNode.new(6) - ) + ::TreeNode.build_tree( + [1, 2, 3, 4, nil, 5, 6, nil, nil, 7] ) ) ) diff --git a/test/medium/test_515_find_largest_value_in_each_tree_row.rb b/test/medium/test_515_find_largest_value_in_each_tree_row.rb index 37b85b08..d62cd6f9 100644 --- a/test/medium/test_515_find_largest_value_in_each_tree_row.rb +++ b/test/medium/test_515_find_largest_value_in_each_tree_row.rb @@ -10,18 +10,8 @@ def test_default_one assert_equal( [1, 3, 9], largest_values( - ::TreeNode.new( - 1, - ::TreeNode.new( - 3, - ::TreeNode.new(5), - ::TreeNode.new(3) - ), - ::TreeNode.new( - 2, - nil, - ::TreeNode.new(9) - ) + ::TreeNode.build_tree( + [1, 3, 2, 5, 3, nil, 9] ) ) ) @@ -31,10 +21,8 @@ def test_default_two assert_equal( [1, 3], largest_values( - ::TreeNode.new( - 1, - ::TreeNode.new(2), - ::TreeNode.new(3) + ::TreeNode.build_tree( + [1, 2, 3] ) ) ) diff --git a/test/medium/test_538_convert_bst_to_greater_tree.rb b/test/medium/test_538_convert_bst_to_greater_tree.rb index 20a89095..0e7637e3 100644 --- a/test/medium/test_538_convert_bst_to_greater_tree.rb +++ b/test/medium/test_538_convert_bst_to_greater_tree.rb @@ -9,48 +9,12 @@ class ConvertBstToGreaterTreeTest < ::Minitest::Test def test_default_one assert( ::TreeNode.are_equals( - ::TreeNode.new( - 30, - ::TreeNode.new( - 36, - ::TreeNode.new(36), - ::TreeNode.new( - 35, - nil, - ::TreeNode.new(33) - ) - ), - ::TreeNode.new( - 21, - ::TreeNode.new(26), - ::TreeNode.new( - 15, - nil, - ::TreeNode.new(8) - ) - ) + ::TreeNode.build_tree( + [30, 36, 21, 36, 35, 26, 15, nil, nil, nil, 33, nil, nil, nil, 8] ), convert_bst( - ::TreeNode.new( - 4, - ::TreeNode.new( - 1, - ::TreeNode.new(0), - ::TreeNode.new( - 2, - nil, - ::TreeNode.new(3) - ) - ), - ::TreeNode.new( - 6, - ::TreeNode.new(5), - ::TreeNode.new( - 7, - nil, - ::TreeNode.new(8) - ) - ) + ::TreeNode.build_tree( + [4, 1, 6, 0, 2, 5, 7, nil, nil, nil, 3, nil, nil, nil, 8] ) ) ) @@ -60,16 +24,12 @@ def test_default_one def test_default_two assert( ::TreeNode.are_equals( - ::TreeNode.new( - 1, - nil, - ::TreeNode.new(1) + ::TreeNode.build_tree( + [1, nil, 1] ), convert_bst( - ::TreeNode.new( - 0, - nil, - ::TreeNode.new(1) + ::TreeNode.build_tree( + [0, nil, 1] ) ) ) diff --git a/test/medium/test_606_construct_string_from_binary_tree.rb b/test/medium/test_606_construct_string_from_binary_tree.rb index 62ebcffd..71188a70 100644 --- a/test/medium/test_606_construct_string_from_binary_tree.rb +++ b/test/medium/test_606_construct_string_from_binary_tree.rb @@ -10,14 +10,8 @@ def test_default_one assert_equal( '1(2(4))(3)', tree2str( - ::TreeNode.new( - 1, - ::TreeNode.new( - 2, - ::TreeNode.new(4), - nil - ), - ::TreeNode.new(3) + ::TreeNode.build_tree( + [1, 2, 3, 4] ) ) ) @@ -27,14 +21,8 @@ def test_default_two assert_equal( '1(2()(4))(3)', tree2str( - ::TreeNode.new( - 1, - ::TreeNode.new( - 2, - nil, - ::TreeNode.new(4) - ), - ::TreeNode.new(3) + ::TreeNode.build_tree( + [1, 2, 3, nil, 4] ) ) ) diff --git a/test/medium/test_623_add_one_row_to_tree.rb b/test/medium/test_623_add_one_row_to_tree.rb index 3f3ab9da..13a68580 100644 --- a/test/medium/test_623_add_one_row_to_tree.rb +++ b/test/medium/test_623_add_one_row_to_tree.rb @@ -9,40 +9,12 @@ class AddOneRowToTreeTest < ::Minitest::Test def test_default_one assert( ::TreeNode.are_equals( - ::TreeNode.new( - 4, - ::TreeNode.new( - 1, - ::TreeNode.new( - 2, - ::TreeNode.new(3), - ::TreeNode.new(1) - ), - nil - ), - ::TreeNode.new( - 1, - nil, - ::TreeNode.new( - 6, - ::TreeNode.new(5), - nil - ) - ) + ::TreeNode.build_tree( + [4, 1, 1, 2, nil, nil, 6, 3, 1, 5] ), add_one_row( - ::TreeNode.new( - 4, - ::TreeNode.new( - 2, - ::TreeNode.new(3), - ::TreeNode.new(1) - ), - ::TreeNode.new( - 6, - ::TreeNode.new(5), - nil - ) + ::TreeNode.build_tree( + [4, 2, 6, 3, 1, 5] ), 1, 2 @@ -54,32 +26,12 @@ def test_default_one def test_default_two assert( ::TreeNode.are_equals( - ::TreeNode.new( - 4, - ::TreeNode.new( - 2, - ::TreeNode.new( - 1, - ::TreeNode.new(3), - nil - ), - ::TreeNode.new( - 1, - nil, - ::TreeNode.new(1) - ) - ), - nil + ::TreeNode.build_tree( + [4, 2, nil, 1, 1, 3, nil, nil, 1] ), add_one_row( - ::TreeNode.new( - 4, - ::TreeNode.new( - 2, - ::TreeNode.new(3), - ::TreeNode.new(1) - ), - nil + ::TreeNode.build_tree( + [4, 2, nil, 3, 1] ), 1, 3 diff --git a/test/medium/test_652_find_duplicate_subtrees.rb b/test/medium/test_652_find_duplicate_subtrees.rb index 7dfa3ae6..3b055969 100644 --- a/test/medium/test_652_find_duplicate_subtrees.rb +++ b/test/medium/test_652_find_duplicate_subtrees.rb @@ -8,31 +8,17 @@ class FindDuplicateSubtreesTest < ::Minitest::Test def test_default_one result = find_duplicate_subtrees( - ::TreeNode.new( - 1, - ::TreeNode.new( - 2, - ::TreeNode.new(4), - nil - ), - ::TreeNode.new( - 3, - ::TreeNode.new( - 2, - ::TreeNode.new(4), - nil - ), - ::TreeNode.new(4) - ) + ::TreeNode.build_tree( + [1, 2, 3, 4, nil, 2, 4, nil, nil, 4] ) ) [ - ::TreeNode.new(4), - ::TreeNode.new( - 2, - ::TreeNode.new(4), - nil + ::TreeNode.build_tree( + [4] + ), + ::TreeNode.build_tree( + [2, 4] ) ].each_with_index do |node, index| assert( @@ -46,15 +32,15 @@ def test_default_one def test_default_two result = find_duplicate_subtrees( - ::TreeNode.new( - 2, - ::TreeNode.new(1), - ::TreeNode.new(1) + ::TreeNode.build_tree( + [2, 1, 1] ) ) [ - ::TreeNode.new(1) + ::TreeNode.build_tree( + [1] + ) ].each_with_index do |node, index| assert( ::TreeNode.are_equals( @@ -67,27 +53,17 @@ def test_default_two def test_default_three result = find_duplicate_subtrees( - ::TreeNode.new( - 2, - ::TreeNode.new( - 2, - ::TreeNode.new(3), - nil - ), - ::TreeNode.new( - 2, - ::TreeNode.new(3), - nil - ) + ::TreeNode.build_tree( + [2, 2, 2, 3, nil, 3, nil] ) ) [ - ::TreeNode.new(3), - ::TreeNode.new( - 2, - ::TreeNode.new(3), - nil + ::TreeNode.build_tree( + [3] + ), + ::TreeNode.build_tree( + [2, 3] ) ].each_with_index do |node, index| assert( diff --git a/test/medium/test_654_maximum_binary_tree.rb b/test/medium/test_654_maximum_binary_tree.rb index 42decb8b..50f7aad6 100644 --- a/test/medium/test_654_maximum_binary_tree.rb +++ b/test/medium/test_654_maximum_binary_tree.rb @@ -9,22 +9,8 @@ class MaximumBinaryTreeTest < ::Minitest::Test def test_default_one assert( ::TreeNode.are_equals( - ::TreeNode.new( - 6, - ::TreeNode.new( - 3, - nil, - ::TreeNode.new( - 2, - nil, - ::TreeNode.new(1) - ) - ), - ::TreeNode.new( - 5, - ::TreeNode.new(0), - nil - ) + ::TreeNode.build_tree( + [6, 3, 5, nil, 2, 0, nil, nil, 1] ), construct_maximum_binary_tree( [3, 2, 1, 6, 0, 5] @@ -36,14 +22,8 @@ def test_default_one def test_default_two assert( ::TreeNode.are_equals( - ::TreeNode.new( - 3, - nil, - ::TreeNode.new( - 2, - nil, - ::TreeNode.new(1) - ) + ::TreeNode.build_tree( + [3, nil, 2, nil, 1] ), construct_maximum_binary_tree( [3, 2, 1] diff --git a/test/medium/test_662_maximum_width_of_binary_tree.rb b/test/medium/test_662_maximum_width_of_binary_tree.rb index 0b85f0b8..03b3c172 100644 --- a/test/medium/test_662_maximum_width_of_binary_tree.rb +++ b/test/medium/test_662_maximum_width_of_binary_tree.rb @@ -10,18 +10,8 @@ def test_default_one assert_equal( 4, width_of_binary_tree( - ::TreeNode.new( - 1, - ::TreeNode.new( - 3, - ::TreeNode.new(5), - ::TreeNode.new(3) - ), - ::TreeNode.new( - 2, - nil, - ::TreeNode.new(9) - ) + ::TreeNode.build_tree( + [1, 3, 2, 5, 3, nil, 9] ) ) ) @@ -31,26 +21,8 @@ def test_default_two assert_equal( 7, width_of_binary_tree( - ::TreeNode.new( - 1, - ::TreeNode.new( - 3, - ::TreeNode.new( - 5, - ::TreeNode.new(6), - nil - ), - nil - ), - ::TreeNode.new( - 2, - nil, - ::TreeNode.new( - 9, - ::TreeNode.new(7), - nil - ) - ) + ::TreeNode.build_tree( + [1, 3, 2, 5, nil, nil, 9, 6, nil, 7] ) ) ) @@ -60,14 +32,8 @@ def test_default_three assert_equal( 2, width_of_binary_tree( - ::TreeNode.new( - 1, - ::TreeNode.new( - 3, - ::TreeNode.new(5), - nil - ), - ::TreeNode.new(2) + ::TreeNode.build_tree( + [1, 3, 2, 5] ) ) ) diff --git a/test/medium/test_669_trim_a_binary_search_tree.rb b/test/medium/test_669_trim_a_binary_search_tree.rb index 627ccaaf..f09b8aa2 100644 --- a/test/medium/test_669_trim_a_binary_search_tree.rb +++ b/test/medium/test_669_trim_a_binary_search_tree.rb @@ -9,16 +9,12 @@ class TrimABinarySearchTreeTest < ::Minitest::Test def test_default_one assert( ::TreeNode.are_equals( - ::TreeNode.new( - 1, - nil, - ::TreeNode.new(2) + ::TreeNode.build_tree( + [1, nil, 2] ), trim_bst( - ::TreeNode.new( - 1, - ::TreeNode.new(0), - ::TreeNode.new(2) + ::TreeNode.build_tree( + [1, 0, 2] ), 1, 2 @@ -30,28 +26,12 @@ def test_default_one def test_default_two assert( ::TreeNode.are_equals( - ::TreeNode.new( - 3, - ::TreeNode.new( - 2, - ::TreeNode.new(1), - nil - ), - nil + ::TreeNode.build_tree( + [3, 2, nil, 1] ), trim_bst( - ::TreeNode.new( - 3, - ::TreeNode.new( - 0, - nil, - ::TreeNode.new( - 2, - ::TreeNode.new(1), - nil - ) - ), - ::TreeNode.new(4) + ::TreeNode.build_tree( + [3, 0, 4, nil, 2, nil, nil, 1] ), 1, 3 diff --git a/test/medium/test_687_longest_univalue_path.rb b/test/medium/test_687_longest_univalue_path.rb index 1e71a668..26401291 100644 --- a/test/medium/test_687_longest_univalue_path.rb +++ b/test/medium/test_687_longest_univalue_path.rb @@ -10,18 +10,8 @@ def test_default_one assert_equal( 2, longest_univalue_path( - ::TreeNode.new( - 5, - ::TreeNode.new( - 4, - ::TreeNode.new(1), - ::TreeNode.new(1) - ), - ::TreeNode.new( - 5, - nil, - ::TreeNode.new(5) - ) + ::TreeNode.build_tree( + [5, 4, 5, 1, 1, nil, 5] ) ) ) @@ -31,18 +21,8 @@ def test_default_two assert_equal( 2, longest_univalue_path( - ::TreeNode.new( - 1, - ::TreeNode.new( - 4, - ::TreeNode.new(4), - ::TreeNode.new(4) - ), - ::TreeNode.new( - 5, - nil, - ::TreeNode.new(5) - ) + ::TreeNode.build_tree( + [1, 4, 5, 4, 4, nil, 5] ) ) )