Share the joy
This is a solution to here: link
- public class BuildSumTree {
- public static void main(String[] args) {
- Tree tree = getSumTree();
- tree = convertToSumTree(tree);
- }
- /*
- * http://www.geeksforgeeks.org/convert-a-given-tree-to-sum-tree/
- */
- public static int convertToSumTree(Tree tree){
- if(tree==null){
- return 0;
- }
- int lvalue = (tree.left==null)?0:tree.left.value;
- int rvalue = (tree.right==null)?0:tree.right.value;
- tree.value = convertToSumTree(tree.left) + convertToSumTree(tree.right) + lvalue + rvalue;
- return tree.value;
- }
- /*
- * This tree will be converted to a sum tree.
- */
- public static Tree getSumTree(){
- Tree t1 = new Tree(1);
- Tree t2 = new Tree(2);
- Tree t3 = new Tree(3);
- Tree t4 = new Tree(4);
- Tree t5 = new Tree(5);
- Tree t6 = new Tree(6);
- t1.left = t2;
- t1.right = t3;
- t2.left = t4;
- t2.right = t5;
- t3.left = t6;
- return t1;
- }
- }