Given a Binary Tree, find vertical sum of the nodes that are in same vertical line. Print all sums through different vertical lines. Examples: 1 / \ 2 3 / \ / \ 4 5 6 7 The tree has 5 vertical lines Vertical-Line-1 has only one node 4 => vertical sum is 4 Vertical-Line-2: has only one node 2=> vertical sum is 2 Vertical-Line-3: has three nodes: 1,5,6 => vertical sum is 1+5+6 = 12 Vertical-Line-4: has only one node 3 => vertical sum is 3 Vertical-Line-5: has only one node 7 => vertical sum is 7 So expected output is 4, 2, 12, 3 and 7
public void print_leaf_to_root(Node root){
ReplyDeleteQueueDemo qd = new QueueDemo();
Queue queue = qd.create_queue(); /* returns Queue*/
Stack s = new Stack();
qd.enqueue(queue, root);
s.push(root.value);
while(!qd.isempty(queue)){
Node root_1 = qd.dequeue(queue);
if(root_1.right!=null){
qd.enqueue(queue, root_1.right);
}
if(root_1.right!=null){
s.push(root_1.right.value);
}
if(root_1.left!=null){
qd.enqueue(queue, root_1.left);
}
if(root_1.left!=null){
s.push(root_1.left.value);
}
}
while(!s.isEmpty()){
System.out.println(s.pop());
}
}