当前位置: 首页 > 知识库问答 >
问题:

Leetcode 112.测试用例的路径和错误答案

韩博简
2023-03-14

我正在处理Leet代码问题112。路径和:

给定一个二叉树的< code >根和一个整数< code>targetSum,如果该树有一个从根到叶的路径,使得沿着该路径的所有值相加等于< code>targetSum,则返回< code>true。

叶子是没有子级的节点。

当使用这个测试执行我的代码时:

[2,0]
targetSum = 0

…结果为真,但预期结果为假。

它似乎通过根运行-

我不知道如何修改这个程序

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *   
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */

bool checkhasPath(struct TreeNode* root,int targetSum,int sum){
    sum += root->val;
    count++;
   
    if(root == NULL) return 0;
    if((sum == targetSum) && (!root->left && !root->right)) return 1;
        
    bool res1, res2;
    if(root->left)
        res1 = checkhasPath(root->left,targetSum,sum);
    if(root->right)
        res2 = checkhasPath(root->right,targetSum,sum);
    return res1 || res2;
}

bool hasPathSum(struct TreeNode* root, int targetSum){   
    return checkhasPath(root,targetSum,0);
}

共有1个答案

苏承载
2023-03-14
匿名用户

两个问题:

>

  • RES1RES2 未初始化。当 if 条件为 false 时,除了它们开始的未定义值之外,它们不会获得其他值。

    检查< code>root == NULL应该在评估< code>root-之前完成

    所以:

    bool checkhasPath(struct TreeNode* root,int targetSum,int sum){
        if(root == NULL) return 0; // do this first
        
        sum += root->val;
    
        if((sum == targetSum) && (!root->left && !root->right)) return 1;
        
        bool res1 = 0, res2 = 0;  // initialise
        if(root->left)
            res1 = checkhasPath(root->left,targetSum,sum);
        if(root->right)
            res2 = checkhasPath(root->right,targetSum,sum);
        
        return res1 || res2;
    }
    

  •  类似资料:
    • 我以前写过一个测试,它成功了,但现在我得到了一个断言错误:JSON路径没有值。

    • 因此,问题如下:给定任何整数数组(相当大),返回数组中任何两个元素之间的最大差异,使得较大的元素比较小的元素出现在更高的索引处。返回-1,如果没有找到这样的对。示例: 7 2 3 10 2 4 8 1 其中第一个元素是数组的大小(或输入的行数),其余元素是元素。上述样本输出为8(10-2)。 我的代码如下: 这是Hackerrank提出的一个问题,但它只适用于10个可能的测试用例中的3个。其余的案

    • 我的应用程序使用spring boot版本2.5.0和spring cloud starter netflix zuul 2.2.8。释放 在最新的spring boot版本2.5.0中,getErrorPath()API从ErrorController中删除,但最新的spring cloud starter netflix zuul 2.2.8。RELEASE仍调用此API并导致此错误 有人遇到

    • 在程序运行过程中,总会遇到各种各样的错误。 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的。 有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应的处理。 还有一类错误是完全无法在程序运行过程中预测的,比如写入文件的时候,磁盘满了,写不进去了,或者从网络抓取数据,网

    • 在程序运行过程中,总会遇到各种各样的错误。 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的。 有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应的处理。 还有一类错误是完全无法在程序运行过程中预测的,比如写入文件的时候,磁盘满了,写不进去了,或者从网络抓取数据,网

    • 我通过xampp软件长期使用Mysql,运行良好。现在我安装了Mysql软件,在配置Mysql软件时,我给出了端口3307,在使用3306的Xampp中独立于Mysql运行它。但它不起作用,我运行xampp时遇到了以下错误,我得到了屏幕,上面写着以下错误 MySQL服务检测到错误路径更改XAMPP MySQL和控制面板设置或先手动卸载/禁用其他服务找到路径:"C:\Program Files\My