gpt4 book ai didi

java - 非二叉树中特定级别的子节点数

转载 作者:行者123 更新时间:2023-11-30 05:43:48 25 4
gpt4 key购买 nike

我正在尝试创建一个方法

 public int getNumberOfChildNodes(int level)

这将返回特定级别中的多个子节点。下图说明:Level 1 should return 2 (B and C) and level 2 should return 5 (D, E, F, G, H)

我已经创建了一个代码,它返回树的高度并返回所有子节点的数量,但是我不知道如何仅在特定级别上找出子节点的数量。谢谢!

import java.util.*;

public class Tree {

private String name;
private List<Tree> childNodes = new ArrayList<Tree>();

public Tree(String name) {
this.name = name;
}

public void addChildNode(Tree childNode) {
childNodes.add(childNode);
}


public int getNumberOfChildNodes() {
int result = 0;
for (Tree childNode : childNodes){
result += childNode.getNumberOfChildNodes();
}
return result + childNodes.size();
}

/*

public int getNumberOfChildNodes(int level) {
int result = 0;
for (Tree childNode : childNodes) {
result += childNode.getNumberOfChildNodes();
}
return result + childNodes.size(); }
*/

}

最佳答案

尝试这个递归函数:

public int getNumberOfChildNodes(int level) {
if(level == 0)
return childNodes.size();

int numOfChildren = 0;
for (Tree childNode : childNodes) {
numOfChildren += childNode.getNumberOfChildNodes(level-1);
}

return numOfChildren ;
}

这个想法是扫描每个级别。对于每个递归调用,我们将级别降低 1。因此,当 level==0 时这意味着我们处于我们想要的级别的节点中,我们将返回 size()该节点的。

编辑

在此解决方案中,我假设每个节点的级别是距根的距离(即根节点位于级别 0,它的子节点位于级别 1,依此类推)。

关于java - 非二叉树中特定级别的子节点数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55188535/

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