树,值是否等于sum(布尔输出)

时间:2016-10-09 22:35:06

标签: tree nodes

问题是:

  

我们定义了一个" root-to-leaf路径"从根节点开始并向下前进到叶子的树中的任何节点序列。 " root-to-leaf路径总和"该路径是该路径上所有节点(包括根)的总和。定义一个空树以不包含根到叶路径(因此其总和为零)。定义一个树,其中一个节点具有仅由根组成的根到叶路径(因此其总和是根的值)。给定二叉树和值" sum",如果树具有一些根到叶路径,则返回true,使得沿路径的所有值相加等于" sum"。如果找不到这样的路径,则返回false。

我有:

public  boolean BTpathsum(BinNode root, int sum)
{
        if(root==null)
{
    return false;
}
else if(root.value() == sum){
 return true;
}
else{
    return BTpathsum(root.left, sum - root.value()) || BTpathsum(root.right, sum - root.value());
}
}

为什么这对我不正确?

1 个答案:

答案 0 :(得分:0)

你去吧

public boolean BTpathsum(BinNode root, int sum)
{
    if(root!=null)
    {
        if(root.value() == sum)
            return true;
        else
            return BTpathsum(root.left, sum - root.value()) || BTpathsum(root.right, sum - root.value());
    }
    else if(sum == 0)
        return true;
    else
        return false;
}

您没有检查以确保树不是空的。如果它的高度为零且总和为0,则需要返回true。