Skip to content

Commit b8ef5f2

Browse files
authored
Create PrintBinaryTreeInVerticalOrderRecurrsion
1 parent 5061901 commit b8ef5f2

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed
+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
import java.util.ArrayList;
2+
import java.util.Set;
3+
import java.util.TreeMap;
4+
5+
public class VerticalOrder {
6+
public static TreeMap<Integer, ArrayList> ht = new TreeMap<>();;
7+
public static int level;
8+
public ArrayList<Integer> al;
9+
10+
public Node vertical(Node root, int level) {
11+
if (root == null) {
12+
return null;
13+
}
14+
Node y = vertical(root.left, --level);
15+
if (y == null) {
16+
level++;
17+
}
18+
if (ht.get(level) != null) {
19+
ArrayList x = ht.get(level);
20+
x.add(root.data);
21+
ht.put(level, x);
22+
} else {
23+
al = new ArrayList<>();
24+
al.add(root.data);
25+
ht.put(level, al);
26+
}
27+
return vertical(root.right, ++level);
28+
}
29+
30+
public void printResult(TreeMap ht) {
31+
Set<Integer> i = ht.keySet();
32+
for (int keys : i) {
33+
System.out.println(ht.get(keys));
34+
}
35+
}
36+
37+
public static void main(String args[]) {
38+
Node root = new Node(1);
39+
root.left = new Node(2);
40+
root.right = new Node(3);
41+
root.left.left = new Node(4);
42+
root.left.right = new Node(5);
43+
root.right.left = new Node(6);
44+
root.right.right = new Node(7);
45+
46+
VerticalOrder p = new VerticalOrder();
47+
p.vertical(root, 0);
48+
p.printResult(ht);
49+
50+
}
51+
}
52+
53+
class Node {
54+
int data;
55+
Node left;
56+
Node right;
57+
58+
public Node(int data) {
59+
this.data = data;
60+
left = null;
61+
right = null;
62+
}
63+
}
64+
65+
class ListNode {
66+
int data;
67+
ListNode next;
68+
69+
public ListNode(int data) {
70+
this.data = data;
71+
next = null;
72+
}
73+
}

0 commit comments

Comments
 (0)