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

返回二叉树中的最大值和最小值

丁震博
2023-03-14

我们想写一个函数,它将二叉树的根作为输入,并使用类PairAns返回该树的最大值和最小值。

我在这个问题的基础案例中遇到了一些问题

PairAns minMax(BinaryTreeNode<int> *root) {
    PairAns ans;
    ans.max=INT_MIN;
    ans.min=INT_MAX;
    if(root->left==NULL&&root->right==NULL){
        ans.max=root->data;
        ans.min=root->data;
        return ans;
    } 
    PairAns smallans1=minMax(root->left);
    PairAns smallans2=minMax(root->right);
    ans.max=max(max(smallans1.max,smallans2.max),root->data);
    ans.min=min(min(smallans1.min,smallans2.min),root->data);
    return ans;
}

我希望答案是正确的,但在所有测试用例中都出现了运行时错误。

共有1个答案

宦烈
2023-03-14

考虑一个有两个节点的树。您可以清楚地看到一个运行时错误。

PairAns minMax(BinaryTreeNode<int> *root) {

    PairAns ans;`enter code here`
    ans.max=INT_MIN;
    ans.min=INT_MAX;

    if(root == NULL)
       return ans;

    if(root->left==NULL&&root->right==NULL){
    ans.max=root->data;
    ans.min=root->data;
    return ans;
    } 
    PairAns smallans1=minMax(root->left);
    PairAns smallans2=minMax(root->right);
    ans.max=max(max(smallans1.max,smallans2.max),root->data);
    ans.min=min(min(smallans1.min,smallans2.min),root->data);
    return ans;
    }
 类似资料:
  • 我正在处理LeetCode问题111。二叉树的最小深度: 给定一棵二叉树,求其最小深度。 最小深度是从根节点到最近的叶节点的最短路径上的节点数。 注意:叶是没有子节点的节点。 我使用了广度优先的算法,并试图改变它以使其与问题保持一致。但是函数返回的是。 有人能解释为什么会这样吗?

  • 我有一个任务,给我一个随机生成的BST的根。我得到了随机生成的测试用例。 分配说明如下: 您将得到二叉搜索树的根节点T和两个整数:min和max。确定存储在T中大于或等于min且小于或等于max的所有键的总和。递归地实现算法 我不允许使用全局变量或创建辅助函数 我当前的代码是: 我的问题是,如果在递归过程中的任何时候,节点都会触发基本情况,并导致我的函数无法正确完成。我相信我的命令可能是罪魁祸首。

  • 如何在二叉树中找到最小路径和,并打印路径?路径可以从ROOT节点到任何LEAF节点。我已经编写了C代码来查找最小和,但是在打印路径时遇到了问题。 参数列表中的未使用,有人能帮我打印路径和最小的路径吗?

  • 我正在解决以下Leetcode问题:https://leetcode.com/problems/maximum-depth-of-binary-tree/solution/ 返回二叉树的最大深度。 这是我的解决方案: 由于某种原因,输出总是比预期的少一个。看看公认的解决方案,它们看起来和我的非常相似,但我似乎找不到我的解决方案出了什么问题。

  • 我试图递归地在二叉树中找到最小值(不是二叉查找树)。让我困惑的是基本情况。如果TreeNode t为空,返回什么?因为我将使用返回的值将其与当前的最小值进行比较(我认为),我相信我返回的内容很重要。

  • 本文向大家介绍返回JavaScript中数组的最小值和最大值的函数,包括了返回JavaScript中数组的最小值和最大值的函数的使用技巧和注意事项,需要的朋友参考一下 问题 我们需要编写一个接受一个数组并返回另一个数组的JavaScript函数,该数组的第一个元素应该是输入数组的最小元素,第二个应该是输入数组的最大元素。 示例 以下是代码- 输出结果