File tree 1 file changed +41
-0
lines changed
1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * Definition for a binary tree node.
3
+ * function TreeNode(val, left, right) {
4
+ * this.val = (val===undefined ? 0 : val)
5
+ * this.left = (left===undefined ? null : left)
6
+ * this.right = (right===undefined ? null : right)
7
+ * }
8
+ */
9
+ /**
10
+ * @param {TreeNode } root1
11
+ * @param {TreeNode } root2
12
+ * @return {boolean }
13
+ */
14
+
15
+ // Time O(n + m) where n is the number of nodes of the firs tree and m nodes of second tree
16
+ // Space O(n + m)
17
+ var leafSimilar = function ( root1 , root2 ) {
18
+ const leafsOne = [ ] ;
19
+ const leafsTwo = [ ] ;
20
+
21
+ traverseHelper ( root1 , leafsOne ) ;
22
+ traverseHelper ( root2 , leafsTwo ) ;
23
+
24
+ if ( leafsOne . length !== leafsTwo . length ) return false ;
25
+
26
+ for ( let i = 0 ; i < leafsOne . length ; i ++ ) {
27
+ if ( leafsOne !== null && leafsTwo !== null ) {
28
+ if ( leafsOne [ i ] !== leafsTwo [ i ] ) return false ;
29
+ } else {
30
+ return false ;
31
+ }
32
+ }
33
+ return true ;
34
+ } ;
35
+
36
+ function traverseHelper ( node , array ) {
37
+ if ( node === null ) return ;
38
+ if ( node . left === null && node . right === null ) array . push ( node . val ) ;
39
+ traverseHelper ( node . left , array ) ;
40
+ traverseHelper ( node . right , array ) ;
41
+ }
You can’t perform that action at this time.
0 commit comments