gpt4 book ai didi

java - 递归搜索二叉树

转载 作者:行者123 更新时间:2023-11-30 02:58:35 25 4
gpt4 key购买 nike

您好,我无法让此代码正常工作。当它沿着树的最左边缘一直递归时,它似乎跳出了堆栈。我似乎无法弄清楚这一点。

public static Node lookup(Node node, int lookupValue) {

if (node == null) {
return null;
} else {
if (node.value == lookupValue) {
System.out.println("Found");
return node;
} else if(node.left != null) {
return lookup(node.left, lookupValue);

} else if(node.right != null) {
return lookup(node.right, lookupValue);
} else {
return null;
}
}
}

最佳答案

您返回从左子树(如果存在)返回的任何内容,而不检查右子树。当 if block 中有 return 语句时,很多 else 分支是不必要的。更改如下:

public static Node lookup(Node node, int lookupValue) {
if (node == null)
return null;
if (node.value == lookupValue)
// System.out.println("Found");
return node;
Node rval = lookup(node.left, lookupValue);
// only return if found in left sub-tree
return (rval != null) ? rval : lookup(node.right, lookupValue);
}

关于java - 递归搜索二叉树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36526668/

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