gpt4 book ai didi

java - 如何从返回值的函数中返回任何内容?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:15:54 25 4
gpt4 key购买 nike

我有一个二叉搜索树,我想删除一个节点。

我需要得到它的父级,所以我写了一个函数:

private BSTreeNode<T> getParent(BSTreeNode<T> root, BSTreeNode<T> node) {
if(root == null)
return null;
if(node.element().lessThan(root.element())) {
if(root.getLeft() != null && root.getLeft().element().equal(node.element()))
return root;
else
getParent(root.getLeft(), node);
} else {
if(root.getRight() != null && root.getRight().element().equal(node.element()))
return root;
else
getParent(root.getRight(), node);
}
}

与 C/C++ 不同,Java 会给我以下错误:

This method must return a result of type BSTreeNode<T>

它迫使我在函数的最后一行返回一个值。

如何在我的函数上下文中修复它?

最佳答案

您的函数不会在所有可能的情况下都有返回值。你有:

if (null)...

if (less than root)...
else ( if ...)
else (no return!)

如果不为null,返回什么,去到最后的else?什么都没有返回。

您可以在 else 语句中return getParent...。或 return null 在函数的末尾(不是在 if 或 else 语句中)

我经常看到这样的代码来覆盖 if 语句都没有返回值的事件。

public int getAnswer()
{
if (answer.equals("yes"))
return 0;
else if (answer.equals("no"))
return 1;

return null;
}

关于java - 如何从返回值的函数中返回任何内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20622156/

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