您的位置:首页 > 其它

Check if a given Binary Tree is SumTree

2014-06-30 21:35 701 查看
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));

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐