Skip to content

Commit f71b02f

Browse files
committed
zigzag traversal code changed
1 parent 0eeab82 commit f71b02f

File tree

1 file changed

+11
-25
lines changed

1 file changed

+11
-25
lines changed

Data-Structure/Tree/Binary Tree/Traversal/levelOrderWithDirection.js

+11-25
Original file line numberDiff line numberDiff line change
@@ -7,39 +7,25 @@ class Node {
77
}
88
function levelOrderTraversalWithDirection(root) {
99
if (root == null) return;
10-
let stack = [];
11-
stack.push(root);
12-
let queue = [];
13-
let leftToRight = true;
14-
while (stack.length != 0) {
10+
let stack1 = [root];
11+
let stack2 = [];
12+
while (stack1.length != 0 || stack2.length != 0) {
1513
let levelElements = '';
16-
while (stack.length != 0) {
17-
let temp = stack.pop();
18-
if (leftToRight) {
19-
if (temp.leftNode) queue.push(temp.leftNode);
20-
if (temp.rightNode) queue.push(temp.rightNode);
21-
} else {
22-
if (temp.rightNode) queue.push(temp.rightNode);
23-
if (temp.leftNode) queue.push(temp.leftNode);
24-
}
14+
while (stack1.length != 0) {
15+
let temp = stack1.pop();
16+
if (temp.rightNode) stack2.push(temp.rightNode);
17+
if (temp.leftNode) stack2.push(temp.leftNode);
2518
levelElements = levelElements + temp.data + ' ';
2619
}
2720
console.log(levelElements);
2821
levelElements = '';
29-
while (queue.length != 0) {
30-
let temp = queue.shift();
31-
if (leftToRight) {
32-
if (temp.leftNode) stack.push(temp.leftNode);
33-
if (temp.rightNode) stack.push(temp.rightNode);
34-
} else {
35-
if (temp.rightNode) stack.push(temp.rightNode);
36-
if (temp.leftNode) stack.push(temp.leftNode);
37-
}
22+
while (stack2.length != 0) {
23+
let temp = stack2.pop();
24+
if (temp.leftNode) stack1.push(temp.leftNode);
25+
if (temp.rightNode) stack1.push(temp.rightNode);
3826
levelElements = levelElements + temp.data + ' ';
3927
}
4028
console.log(levelElements);
41-
if (leftToRight) leftToRight = false;
42-
else leftToRight = true;
4329
}
4430
}
4531
//level - 1

0 commit comments

Comments
 (0)