package com.interview.tree;
/**
* http://www.geeksforgeeks.org/add-greater-values-every-node-given-bst/
* Test cases:
* Empty tree
* One node tree
* Two node tree
*/
class IntegerRef{
int val;
}
public class AddGreaterValueNodeToEveryNode {
public void add(Node root,IntegerRef ref){
if(root == null){
return ;
}
add(root.right,ref);
root.data += ref.val;
ref.val = root.data;
add(root.left,ref);
}
public static void main(String args[]){
BinaryTree bt = new BinaryTree();
Node root = null;
root = bt.addNode(10, root);
root = bt.addNode(5, root);
root = bt.addNode(20, root);
root = bt.addNode(15, root);
root = bt.addNode(25, root);
AddGreaterValueNodeToEveryNode agv = new AddGreaterValueNodeToEveryNode();
IntegerRef ir = new IntegerRef();
ir.val = 0;
agv.add(root, ir);
TreeTraversals tt = new TreeTraversals();
tt.inOrder(root);
}
}