package tree;
class Ress{
int sum;
}
public class SumTree {
/**
* Following is an example of SumTree.
26
/ \
10 3
/ \ \
4 6 3
* 本质为后序遍历
* @param args
*/
public static int sum = 0;
public static boolean issumtree(TreeNode root,Ress res){
if(root==null) return true;
if(root.left==null&&root.right==null){
res.sum = root.value;
return true;
}
Ress left = new Ress();
Ress right = new Ress();
if(issumtree(root.left, left)&&issumtree(root.right, right)){
if(root.value==left.sum+right.sum){
res.sum = root.value*2;
return true;
}
return false;
}
return false;
}
public static void main(String[] args) {
TreeNode root = new TreeNode(26);
root.left = new TreeNode(10);
root.right = new TreeNode(31);
root.right.right = new TreeNode(3);
root.left.left = new TreeNode(4);
root.left.right = new TreeNode(6);
Ress res = new Ress();
System.out.println(issumtree(root, res));
}
}
class Ress{
int sum;
}
public class SumTree {
/**
* Following is an example of SumTree.
26
/ \
10 3
/ \ \
4 6 3
* 本质为后序遍历
* @param args
*/
public static int sum = 0;
public static boolean issumtree(TreeNode root,Ress res){
if(root==null) return true;
if(root.left==null&&root.right==null){
res.sum = root.value;
return true;
}
Ress left = new Ress();
Ress right = new Ress();
if(issumtree(root.left, left)&&issumtree(root.right, right)){
if(root.value==left.sum+right.sum){
res.sum = root.value*2;
return true;
}
return false;
}
return false;
}
public static void main(String[] args) {
TreeNode root = new TreeNode(26);
root.left = new TreeNode(10);
root.right = new TreeNode(31);
root.right.right = new TreeNode(3);
root.left.left = new TreeNode(4);
root.left.right = new TreeNode(6);
Ress res = new Ress();
System.out.println(issumtree(root, res));
}
}