gpt4 book ai didi

java - 遍历树找到节点

转载 作者:搜寻专家 更新时间:2023-10-31 19:42:16 26 4
gpt4 key购买 nike

我正在搜索树以查找传递的值。不幸的是,它不起作用。我开始使用打印调试它,奇怪的是它实际上找到了值,但跳过了 return 语句。

    /**
* Returns the node with the passed value
*/
private TreeNode searchNodeBeingDeleted(Comparable c, TreeNode node)
{
if(node == null)
{
return null;
}

if(c.equals((Comparable)node.getValue()))
{
System.out.println("Here");
return node;
}
else
{
if(node.getLeft() != null)
{
System.out.println("left");
searchNodeBeingDeleted(c, node.getLeft());
}
if(node.getRight() != null)
{
System.out.println("right");
searchNodeBeingDeleted(c, node.getRight());
}
}
return null; //i think this gives me my null pointer at bottom
}

打印结果如下:

left
left
right
right
Here
right
left
right
left
right
Exception in thread "main" java.lang.NullPointerException
at Program_14.Driver.main(Driver.java:29)

我不知道这是否有帮助,但这是我的树:

     L
/ \
D R
/ \ / \
A F M U
\ / \
B T V

感谢您的宝贵时间。

最佳答案

试试这个:

private TreeNode searchNodeBeingDeleted(Comparable c, TreeNode node)
{
if(node == null)
{
return null;
}

if(c.equals((Comparable)node.getValue()))
{
System.out.println("Here");
return node;
}
else
{
if(node.getLeft() != null)
{
System.out.println("left");
TreeNode n = searchNodeBeingDeleted(c, node.getLeft());
if (n != null) {
return n;
}
}
if(node.getRight() != null)
{
System.out.println("right");
TreeNode n = searchNodeBeingDeleted(c, node.getRight());
if (n != null) {
return n;
}
}
}
return null; //i think this gives me my null pointer at bottom
}

关于java - 遍历树找到节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2259016/

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