1+ 'use strict' ;
2+ class Node {
3+ constructor ( data ) {
4+ this . data = data ;
5+ this . leftNode = this . rightNode = null ;
6+ }
7+ }
8+ function oddLevelTraversal ( root ) {
9+ if ( root == null ) return ;
10+ let queue = [ root ] ;
11+ let oddLevel = true ;
12+ while ( queue . length != 0 ) {
13+ let count = queue . length ;
14+ let result = ''
15+ while ( count != 0 ) {
16+ let temp = queue . shift ( ) ;
17+ if ( oddLevel )
18+ result = result + temp . data + ' ' ;
19+ if ( temp . leftNode ) queue . push ( temp . leftNode )
20+ if ( temp . rightNode ) queue . push ( temp . rightNode )
21+ count -- ;
22+ }
23+ if ( result != '' ) console . log ( result )
24+ oddLevel = ! oddLevel ;
25+ }
26+ }
27+
28+ //level - 1
29+ let tree = new Node ( 1 ) ;
30+
31+ // level - 2
32+ tree . leftNode = new Node ( 2 ) ;
33+ tree . rightNode = new Node ( 3 ) ;
34+
35+ // level -3
36+ tree . leftNode . leftNode = new Node ( 4 ) ;
37+ tree . leftNode . rightNode = new Node ( 5 ) ;
38+
39+ tree . rightNode . leftNode = new Node ( 6 ) ;
40+ tree . rightNode . rightNode = new Node ( 7 ) ;
41+
42+ // level -4
43+ tree . leftNode . leftNode . leftNode = new Node ( 8 ) ;
44+ tree . leftNode . leftNode . rightNode = new Node ( 9 ) ;
45+
46+ tree . leftNode . rightNode . leftNode = new Node ( 10 ) ;
47+ tree . leftNode . rightNode . rightNode = new Node ( 11 ) ;
48+
49+ tree . rightNode . leftNode . leftNode = new Node ( 12 ) ;
50+ tree . rightNode . leftNode . rightNode = new Node ( 13 ) ;
51+
52+ tree . rightNode . rightNode . leftNode = new Node ( 14 ) ;
53+ tree . rightNode . rightNode . rightNode = new Node ( 15 ) ;
54+ // 1
55+ // / \
56+ // 2 3
57+ // / \ / \
58+ // 4 5 6 7
59+ // / \ / \ / \ / \
60+ // 8 9 10 11 12 13 14 15
61+ oddLevelTraversal ( tree ) ;
0 commit comments