Skip to content

Commit 90ff61f

Browse files
committed
2024-07-29 v. 6.3.3.1: updated TreeNode equals method
1 parent 7c7180f commit 90ff61f

10 files changed

+247
-194
lines changed

lib/common/binary_tree.rb

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,10 @@ def initialize(val = 0, left = nil, right = nil)
1313
@right = right
1414
end
1515

16-
# @param {TreeNode} other
17-
# @return {Boolean}
18-
def ==(other)
19-
are_equals(self, other)
20-
end
21-
22-
private
23-
2416
# @param {TreeNode} curr
2517
# @param {TreeNode} other
2618
# @return {Boolean}
27-
def are_equals(curr, other)
19+
def self.are_equals(curr, other)
2820
return true if curr.nil? && other.nil?
2921
return false if curr.nil? || other.nil?
3022

test/common/test_binary_tree.rb

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,29 @@ def test_default
1616
::TreeNode.new(2),
1717
::TreeNode.new(3)
1818
)
19-
assert_equal(first, second)
19+
assert(
20+
::TreeNode.are_equals(
21+
first,
22+
second
23+
)
24+
)
2025

2126
third = ::TreeNode.new(
2227
1,
2328
::TreeNode.new(4),
2429
::TreeNode.new(5)
2530
)
26-
assert(first != third)
27-
assert(second != third)
31+
assert(
32+
!::TreeNode.are_equals(
33+
first,
34+
third
35+
)
36+
)
37+
assert(
38+
!::TreeNode.are_equals(
39+
second,
40+
third
41+
)
42+
)
2843
end
2944
end

test/easy/test_108_convert_sorted_array_to_binary_search_tree.rb

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,31 +7,35 @@
77

88
class ConvertSortedArrayToBinarySearchTreeTest < ::Minitest::Test
99
def test_default
10-
assert_equal(
11-
::TreeNode.new(
12-
0,
10+
assert(
11+
::TreeNode.are_equals(
1312
::TreeNode.new(
14-
-10,
15-
nil,
16-
::TreeNode.new(-3)
13+
0,
14+
::TreeNode.new(
15+
-10,
16+
nil,
17+
::TreeNode.new(-3)
18+
),
19+
::TreeNode.new(
20+
5,
21+
nil,
22+
::TreeNode.new(9)
23+
)
1724
),
18-
::TreeNode.new(
19-
5,
20-
nil,
21-
::TreeNode.new(9)
25+
sorted_array_to_bst(
26+
[-10, -3, 0, 5, 9]
2227
)
23-
),
24-
sorted_array_to_bst(
25-
[-10, -3, 0, 5, 9]
2628
)
2729
)
28-
assert_equal(
29-
::TreeNode.new(
30-
1,
31-
nil,
32-
::TreeNode.new(3)
33-
),
34-
sorted_array_to_bst([1, 3])
30+
assert(
31+
::TreeNode.are_equals(
32+
::TreeNode.new(
33+
1,
34+
nil,
35+
::TreeNode.new(3)
36+
),
37+
sorted_array_to_bst([1, 3])
38+
)
3539
)
3640
end
3741
end

test/easy/test_144_binary_tree_preorder_traversal.rb

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,15 @@ def test_default
2020
)
2121
)
2222
)
23-
assert_equal([], preorder_traversal(nil))
24-
assert_equal([1], preorder_traversal(::TreeNode.new(1)))
23+
assert_equal(
24+
[],
25+
preorder_traversal(nil)
26+
)
27+
assert_equal(
28+
[1],
29+
preorder_traversal(
30+
::TreeNode.new(1)
31+
)
32+
)
2533
end
2634
end

test/easy/test_226_invert_binary_tree.rb

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -7,47 +7,51 @@
77

88
class InvertBinaryTreeTest < ::Minitest::Test
99
def test_default
10-
assert_equal(
11-
::TreeNode.new(
12-
4,
13-
::TreeNode.new(
14-
7,
15-
::TreeNode.new(9),
16-
::TreeNode.new(6)
17-
),
18-
::TreeNode.new(
19-
2,
20-
::TreeNode.new(3),
21-
::TreeNode.new(1)
22-
)
23-
),
24-
invert_tree(
10+
assert(
11+
::TreeNode.are_equals(
2512
::TreeNode.new(
2613
4,
2714
::TreeNode.new(
28-
2,
29-
::TreeNode.new(1),
30-
::TreeNode.new(3)
15+
7,
16+
::TreeNode.new(9),
17+
::TreeNode.new(6)
3118
),
3219
::TreeNode.new(
33-
7,
34-
::TreeNode.new(6),
35-
::TreeNode.new(9)
20+
2,
21+
::TreeNode.new(3),
22+
::TreeNode.new(1)
23+
)
24+
),
25+
invert_tree(
26+
::TreeNode.new(
27+
4,
28+
::TreeNode.new(
29+
2,
30+
::TreeNode.new(1),
31+
::TreeNode.new(3)
32+
),
33+
::TreeNode.new(
34+
7,
35+
::TreeNode.new(6),
36+
::TreeNode.new(9)
37+
)
3638
)
3739
)
3840
)
3941
)
40-
assert_equal(
41-
::TreeNode.new(
42-
2,
43-
::TreeNode.new(1),
44-
::TreeNode.new(3)
45-
),
46-
invert_tree(
42+
assert(
43+
::TreeNode.are_equals(
4744
::TreeNode.new(
4845
2,
49-
::TreeNode.new(3),
50-
::TreeNode.new(1)
46+
::TreeNode.new(1),
47+
::TreeNode.new(3)
48+
),
49+
invert_tree(
50+
::TreeNode.new(
51+
2,
52+
::TreeNode.new(3),
53+
::TreeNode.new(1)
54+
)
5155
)
5256
)
5357
)

test/easy/test_617_merge_two_binary_trees.rb

Lines changed: 39 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -7,57 +7,61 @@
77

88
class MergeTwoBinaryTreesTest < ::Minitest::Test
99
def test_default
10-
assert_equal(
11-
::TreeNode.new(
12-
3,
10+
assert(
11+
::TreeNode.are_equals(
1312
::TreeNode.new(
14-
4,
15-
::TreeNode.new(5),
16-
::TreeNode.new(4)
17-
),
18-
::TreeNode.new(
19-
5,
20-
nil,
21-
::TreeNode.new(7)
22-
)
23-
),
24-
merge_trees(
25-
::TreeNode.new(
26-
1,
13+
3,
2714
::TreeNode.new(
28-
3,
15+
4,
2916
::TreeNode.new(5),
30-
nil
17+
::TreeNode.new(4)
3118
),
32-
::TreeNode.new(2)
19+
::TreeNode.new(
20+
5,
21+
nil,
22+
::TreeNode.new(7)
23+
)
3324
),
34-
::TreeNode.new(
35-
2,
25+
merge_trees(
3626
::TreeNode.new(
3727
1,
38-
nil,
39-
::TreeNode.new(4)
28+
::TreeNode.new(
29+
3,
30+
::TreeNode.new(5),
31+
nil
32+
),
33+
::TreeNode.new(2)
4034
),
4135
::TreeNode.new(
42-
3,
43-
nil,
44-
::TreeNode.new(7)
36+
2,
37+
::TreeNode.new(
38+
1,
39+
nil,
40+
::TreeNode.new(4)
41+
),
42+
::TreeNode.new(
43+
3,
44+
nil,
45+
::TreeNode.new(7)
46+
)
4547
)
4648
)
4749
)
4850
)
49-
assert_equal(
50-
::TreeNode.new(
51-
2,
52-
::TreeNode.new(2),
53-
nil
54-
),
55-
merge_trees(
56-
::TreeNode.new(1),
51+
assert(
52+
::TreeNode.are_equals(
5753
::TreeNode.new(
58-
1,
54+
2,
5955
::TreeNode.new(2),
6056
nil
57+
),
58+
merge_trees(
59+
::TreeNode.new(1),
60+
::TreeNode.new(
61+
1,
62+
::TreeNode.new(2),
63+
nil
64+
)
6165
)
6266
)
6367
)

test/easy/test_700_search_in_a_binary_search_tree.rb

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,25 @@
77

88
class SearchInABinarySearchTreeTest < ::Minitest::Test
99
def test_default
10-
assert_equal(
11-
::TreeNode.new(
12-
2,
13-
::TreeNode.new(1),
14-
::TreeNode.new(3)
15-
),
16-
search_bst(
10+
assert(
11+
::TreeNode.are_equals(
1712
::TreeNode.new(
18-
4,
13+
2,
14+
::TreeNode.new(1),
15+
::TreeNode.new(3)
16+
),
17+
search_bst(
1918
::TreeNode.new(
20-
2,
21-
::TreeNode.new(1),
22-
::TreeNode.new(3)
19+
4,
20+
::TreeNode.new(
21+
2,
22+
::TreeNode.new(1),
23+
::TreeNode.new(3)
24+
),
25+
::TreeNode.new(7)
2326
),
24-
::TreeNode.new(7)
25-
),
26-
2
27+
2
28+
)
2729
)
2830
)
2931
assert_nil(

0 commit comments

Comments
 (0)