我写了一个代码,需要检查并打印在二叉树上,如果存在从根向前的路径,那么如果我们在每个步骤中对对象求和,我们将得到给定的和。
例如:
1
/ \
4 1
/ \ / \
8 2 6 8
/ \ / \
10 5 2 8
假设我们得到了数字5。
程序需要以字符串“1,4”返回,因为它给出了和5。
如果给我们数字8,程序将返回字符串“1,1,6”,因为加起来它给出了和8。
这是我编写的程序:
public String sum(int x) {
return sum(x, root, 0, "");
}
private String sum(int x, Node tree, int num, String s) {
if(tree == null)
return "";
if(num == x) {
s=s+tree.getNumber() + ", ";
return s;
}
if (num != x)
s=s+tree.getNumber() + ", ";
sum(x, tree.getLeftSon(), num, s);
sum(x, tree.getRightSon(), num, s);
return s;
当我运行代码时,它看起来很好-但当它进入“if(num==x)”条件的末尾时-它就是不返回值!
我运行了调试器,得到了所需的所有正确值。如果程序返回s的值并自行停止,我的程序将按照我的意愿工作。但它只是继续到下一个“如果”,我不知道该怎么办。。。
帮助会得到很多通知。