gpt4 book ai didi

algorithm - 亚马逊采访 :Sum of the leaf node in BST

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:03:12 25 4
gpt4 key购买 nike

我为此编写的代码:

   sumBST(BST *root)
{
static sum =0;
if (root!= null)
{
if (root->left != null || root->right != null)
{
sum = sum + sumBST(root->left) + sumBST(root->right);
return sum;
}
else
{
root->data;
}
}
else
{
return 0;
}
return sum;
}

我已经通过绘制递归树来检查它似乎很好,但我仍然在某些时候感到困惑,我犯了一些错误。请纠正我,我在这里做错了什么。

最佳答案

好吧,看起来您实际上并不是在添加叶节点的总和。
特别是 - 行:

root->data

实际上并不返回数据,只是读取它。在伪代码中应该是这样的:

sumBST(node):
if (root == null):
return 0
else if (root->left == null && root->right == null)
//add the value of the node if it is a leaf, this step is missing
return root->data;
else:
return sumBST(root->left) + sumBST(root->right)

编辑:
代码中的问题如下(在答案中进一步澄清和解释这一点):

你应该在某处返回叶子的数据——这在代码的任何地方都没有发生——我怀疑你想在 root->data 中返回它。

但是请注意,递归将遍历每一片叶子 - 它只是缺少从每个叶子返回的值。

关于algorithm - 亚马逊采访 :Sum of the leaf node in BST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12953961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com