1
+ // Runtime: 179 ms (Top 13.99%) | Memory: 158.1 MB (Top 58.04%)
1
2
2
3
class Solution {
3
4
public TreeNode canMerge (List <TreeNode > trees ) {
@@ -6,15 +7,14 @@ public TreeNode canMerge(List<TreeNode> trees) {
6
7
for (TreeNode t : trees ){
7
8
map .put (t .val , t );
8
9
}
9
-
10
+
10
11
// Merge trees
11
12
for (TreeNode t : trees ){
12
13
if (map .containsKey (t .val )){
13
14
merger (t , map );
14
15
}
15
16
}
16
17
17
-
18
18
//After merging we should have only one tree left else return null
19
19
if (map .size () != 1 ) return null ;
20
20
else {
@@ -26,12 +26,11 @@ public TreeNode canMerge(List<TreeNode> trees) {
26
26
} else return null ;
27
27
}
28
28
}
29
-
29
+
30
30
return null ;
31
-
32
-
31
+
33
32
}
34
-
33
+
35
34
void merger (TreeNode t , HashMap <Integer , TreeNode > map ){
36
35
map .remove (t .val ); // Remove current tree to prevent cyclical merging For. 2->3(Right) and 3->2(Left)
37
36
//Merge on left
@@ -41,9 +40,9 @@ void merger(TreeNode t, HashMap<Integer, TreeNode> map){
41
40
t .left = map .get (t .left .val );
42
41
map .remove (t .left .val );
43
42
}
44
-
43
+
45
44
// Merge on right
46
- if (t .right !=null && map .containsKey (t .right .val ) ){
45
+ if (t .right !=null && map .containsKey (t .right .val ) ){
47
46
// Before merging child node, merge the grandchild nodes
48
47
merger (map .get (t .right .val ), map );
49
48
t .right = map .get (t .right .val );
@@ -52,15 +51,15 @@ void merger(TreeNode t, HashMap<Integer, TreeNode> map){
52
51
// Add tree back to map once right and left merge is complete
53
52
map .put (t .val , t );
54
53
}
55
-
54
+
56
55
// Validate BST
57
56
public boolean isValidBST (TreeNode root ) {
58
57
return helper (root , Long .MIN_VALUE , Long .MAX_VALUE );
59
58
}
60
-
59
+
61
60
public boolean helper (TreeNode root , long min , long max ){
62
61
if (root == null ) return true ;
63
62
if (root .val <= min || root .val >= max ) return false ;
64
63
return helper (root .left , min , root .val ) && helper (root .right , root .val , max );
65
64
}
66
- }
65
+ }
0 commit comments