File tree Expand file tree Collapse file tree 2 files changed +36
-0
lines changed Expand file tree Collapse file tree 2 files changed +36
-0
lines changed Original file line number Diff line number Diff line change @@ -49,3 +49,23 @@ def recur(node):
49
49
recur (node .right )
50
50
recur (self .head )
51
51
return output
52
+
53
+ def merge (self , tree ):
54
+
55
+ def mergeOntoT1 (t1 , t2 ):
56
+ if not t1 :
57
+ return t2
58
+ if not t2 :
59
+ return t1
60
+
61
+ t1 .value += t2 .value
62
+
63
+ # look left
64
+ t1 .left = mergeOntoT1 (t1 .left , t2 .left )
65
+
66
+ # look right
67
+ t1 .right = mergeOntoT1 (t1 .right , t2 .right )
68
+
69
+ return t1
70
+
71
+ mergeOntoT1 (self .head , tree .head )
Original file line number Diff line number Diff line change @@ -66,3 +66,19 @@ def test_search(self):
66
66
self .assertEqual (None , tree .search (87 ))
67
67
68
68
self .assertEqual (3 , tree .search (3 ).value )
69
+
70
+ def test_merge (self ):
71
+
72
+ tree = self .make_simple_tree ()
73
+
74
+ tree2 = BinarySearchTree ()
75
+
76
+ tree2 .insert (5 )
77
+ tree2 .insert (9 )
78
+ tree2 .insert (10 )
79
+
80
+ tree .merge (tree2 )
81
+
82
+ self .assertEqual (17 , tree .head .value )
83
+ self .assertEqual (27 , tree .search (27 ).value )
84
+ self .assertEqual (42 , tree .search (42 ).value )
You can’t perform that action at this time.
0 commit comments