File tree Expand file tree Collapse file tree 1 file changed +52
-0
lines changed
Data-Structure/Tree/Binary Tree/LCA Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Original file line number Diff line number Diff line change 1+ 'use strict' ;
2+ class Node {
3+ constructor ( data ) {
4+ this . data = data ;
5+ this . leftNode = this . rightNode = null ;
6+ }
7+ }
8+
9+ function printAncestors ( root , data ) {
10+ if ( root == null ) return false ;
11+ if ( root . data == data ) return true ;
12+ if ( printAncestors ( root . leftNode , data ) || printAncestors ( root . rightNode , data ) ) {
13+ console . log ( root . data ) ;
14+ return true ;
15+ }
16+ return false ;
17+ }
18+
19+ //level - 1
20+ let tree = new Node ( 1 ) ;
21+
22+ // level - 2
23+ tree . leftNode = new Node ( 2 ) ;
24+ tree . rightNode = new Node ( 3 ) ;
25+
26+ // level - 3
27+ tree . leftNode . leftNode = new Node ( 4 ) ;
28+ tree . leftNode . rightNode = new Node ( 5 ) ;
29+
30+ tree . rightNode . leftNode = new Node ( 6 ) ;
31+ tree . rightNode . rightNode = new Node ( 7 ) ;
32+
33+ // level - 4
34+ tree . leftNode . leftNode . leftNode = new Node ( 8 ) ;
35+ tree . leftNode . leftNode . rightNode = new Node ( 9 ) ;
36+
37+ tree . leftNode . rightNode . leftNode = new Node ( 10 ) ;
38+ tree . leftNode . rightNode . rightNode = new Node ( 11 ) ;
39+
40+ tree . rightNode . leftNode . leftNode = new Node ( 12 ) ;
41+ tree . rightNode . leftNode . rightNode = new Node ( 13 ) ;
42+
43+ tree . rightNode . rightNode . leftNode = new Node ( 14 ) ;
44+ tree . rightNode . rightNode . rightNode = new Node ( 15 ) ;
45+ // 1
46+ // / \
47+ // 2 3
48+ // / \ / \
49+ // 4 5 6 7
50+ // / \ / \ / \ / \
51+ // 8 9 10 11 12 13 14 15
52+ printAncestors ( tree , 12 ) ;
You can’t perform that action at this time.
0 commit comments