Skip to content

Commit d643ff0

Browse files
committed
boundary traversal of BT
1 parent a934666 commit d643ff0

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

Trees/boundaryBinaryTree.java

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
class Solution {
2+
class TreeNode {
3+
int data;
4+
Node left, right;
5+
public TreeNode(int data) {
6+
this.data = data;
7+
left = right = null;
8+
}
9+
}
10+
11+
public List<Integer> boundaryTraversal(TreeNode root) {
12+
List<Integer> res = new ArrayList<>();
13+
getBoundary(root, res, -1);
14+
getBoundary(root, res, 0);
15+
getBoundary(root, res, 1);
16+
17+
return res;
18+
}
19+
20+
public void getBoundary(TreeNode root, List<Integer> res, int dir) {
21+
if (root == null) return;
22+
23+
if (dir == -1) {
24+
if (root.left != null) {
25+
res.add(root.val);
26+
getBoundary(root.left, res, dir);
27+
}
28+
} else if (dir == 0) {
29+
getBoundary(root.left, res, dir);
30+
if (root.left == null && root.right == null) {
31+
res.add(root.val);
32+
}
33+
getBoundary(root.right, res, dir);
34+
} else if (dir == 1) {
35+
if (root.right != null) {
36+
res.add(root.val);
37+
getBoundary(root.right, res, dir);
38+
}
39+
}
40+
}
41+
}

0 commit comments

Comments
 (0)