Skip to content

Commit 4a424e2

Browse files
committed
odd level order sum
1 parent 12cef77 commit 4a424e2

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
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

Comments
 (0)