【发布时间】:2020-07-15 07:34:40
【问题描述】:
BOOL hasKey(pTreeNode tree, int key)
{
BOOL ret = FALSE;
if (tree != NULL)
{
if (key == tree->key)
ret = TRUE;
else
ret = (BOOL)(hasKey(tree->left, key) || hasKey(tree->right, key)); *//here*
}
return ret;
}
这是一个检查给定“键”是否在树中的函数。 我不明白我发表评论的那一行背后的逻辑是什么,我也想知道这段代码是否会这样做:
BOOL hasKey(pTreeNode tree, int key)
{
BOOL ret = FALSE;
if (tree != NULL)
{
if (key == tree->key)
ret = TRUE;
else { ret = hasKey(tree->left,key);
if (ret == FALSE)
ret = hasKey(tree->right,key);
}
}
return ret;
}
我没有完整的代码,这就是为什么我不能测试两者是否相同,这是考试中的问题。
我希望一切都清楚!谢谢!
【问题讨论】:
-
是的,基本上它们是一样的。语言中可能存在一些模糊的角落,它们可能会有所不同,但否则两者应该会产生相同的结果。