【发布时间】:2016-07-26 05:43:30
【问题描述】:
我正在写一个二叉树作业问题的方法。
目标:
给定一棵二叉树,检查树是否满足对于每个节点,其左右子节点的值之和等于节点值的属性。如果一个节点只有一个孩子,那么该节点应该与那个孩子具有相同的值。叶节点自动满足该属性。
我收到一条错误消息,指出我的代码在所有情况下都不正确。例如,如果我有一棵树
15
/ \
5 10
当它应该为真时,我返回假。
到目前为止,这是我的方法,我做错了什么?
boolean BTchecksum(BinNode root) {
if (root == null || root.left() == null && root.right() == null) {return true;}
BinNode leftNode = root.left();
BinNode rightNode = root.right();
int sum = (int)(leftNode.element()) + (int)(leftNode.element());
int value = (int)(root.element());
return (sum == value) && BTchecksum(root.left()) && BTchecksum(root.right());
}
【问题讨论】:
标签: java recursion methods binary-tree