gpt4 book ai didi

java - 我搜索非二叉树(n 叉树)的方法有什么问题?

转载 作者:太空宇宙 更新时间:2023-11-04 08:10:06 29 4
gpt4 key购买 nike

嗨,我有这段代码来搜索 n 叉树,但它不能正常工作,我不知道这有什么问题当搜索 n4 和 n5 时,它返回 n3怎么了? enter image description here

public FamilyNode findNodeByName(FamilyNode nodeName ){
if(this.name.equals(nodeName.name)){
// We found a node named nodeName, return it
return this;
}
// That's not me that you are looking for, let's see my kids

for(FamilyNode child : this.children){
if(child.findNodeByName(nodeName) != null)
return child;
// We found what we are looking, just return from here
// return child;

}
// Finished looping over all nodes and did not find any, return null
return null;
}

最佳答案

原因是因为你返回了找到节点的节点。一旦找到节点,就需要返回该节点,如果找到FamilyNode,则需要返回找到的FamilyNode的父节点。检查 found 变量做了什么。

你需要做这样的事情:

FamilyNode found = child.findNodeByName(nodeName);
if(found != null)
return found;

整个方法如下所示:

public FamilyNode findNodeByName(FamilyNode nodeName ){
if(this.name.equals(nodeName.name)){
return this;
}
for(FamilyNode child : this.children){
FamilyNode found = child.findNodeByName(nodeName);
if(found != null)
return found;
}
return null;
}

关于java - 我搜索非二叉树(n 叉树)的方法有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11373249/

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