【发布时间】:2019-06-05 09:25:36
【问题描述】:
我们想编写一个函数,将二叉树的根作为输入,并使用 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;
}
我希望答案是正确的,但在所有测试用例中都出现运行时错误。
【问题讨论】:
-
你需要检查
root == NULL。 -
那是正确的,但如果我检查叶节点,那么检查它是否有 NULL 节点有什么意义
-
一些内部节点将只有一个孩子。你的支票没有发现。
标签: c++ data-structures binary-tree