Skip to content

Commit 7f9f6ea

Browse files
committed
print all ancestors of a given node
1 parent 04a93df commit 7f9f6ea

File tree

1 file changed

+52
-0
lines changed

1 file changed

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

0 commit comments

Comments
 (0)