1
+ 'use strict' ;
2
+ class Node {
3
+ constructor ( data ) {
4
+ this . data = data ;
5
+ this . leftNode = this . rightNode = null ;
6
+ }
7
+ }
8
+
9
+ function mergeTwoTrees ( t1 , t2 ) {
10
+ if ( t1 == null ) return t2 ;
11
+ if ( t2 == null ) return t1 ;
12
+ t1 . data = t1 . data + t2 . data ;
13
+ t1 . leftNode = mergeTwoTrees ( t1 . leftNode , t2 . leftNode ) ;
14
+ t1 . rightNode = mergeTwoTrees ( t1 . rightNode , t2 . rightNode ) ;
15
+ return t1 ;
16
+ }
17
+
18
+ function preOrder ( root ) {
19
+ if ( root == null ) return ;
20
+ preOrder ( root . leftNode ) ;
21
+ console . log ( root . data ) ;
22
+ preOrder ( root . rightNode ) ;
23
+ }
24
+ //level - 1
25
+ let tree1 = new Node ( 2 ) ;
26
+
27
+ // level - 2
28
+ tree1 . leftNode = new Node ( 1 ) ;
29
+ tree1 . rightNode = new Node ( 4 ) ;
30
+
31
+ // level -3
32
+ tree1 . leftNode . leftNode = new Node ( 5 ) ;
33
+
34
+ let tree2 = new Node ( 3 ) ;
35
+
36
+ tree2 . leftNode = new Node ( 6 ) ;
37
+ tree2 . rightNode = new Node ( 1 ) ;
38
+
39
+ tree2 . leftNode . rightNode = new Node ( 2 ) ;
40
+ tree2 . rightNode . rightNode = new Node ( 7 ) ;
41
+ let mergedTree = mergeTwoTrees ( tree1 , tree2 )
42
+ preOrder ( mergedTree ) ;
0 commit comments