gpt4 book ai didi

java - 判断树中的节点是否已满

转载 作者:行者123 更新时间:2023-12-01 15:04:08 25 4
gpt4 key购买 nike

我试图确定 m 叉树中的所有节点是否已满。我想我已经有了总体思路,但我不确定。这是我到目前为止所做的事情。

在我的 TreeNode 类中,我有以下方法。

    public class TreeNode
{
private String label;
private String message;
private TreeNode[] nodes;
private int numChildren;
private TreeNode parent;
private String prompt;

***other methods and constructors***

public boolean isFull()
{
for(int i = 0; i < numChildren; ++i)
{
if(nodes[i] == null)
return false;
}
return true;
}

其中numChildren是数组nodes[](或只是nodes.length)中可能的子节点总数,nodes[]是当前节点的所有子节点的数组。另外,了解我的 TreeNode 是双向链接的可能会有所帮助,因此我可以在需要时检索当前节点的父节点。

然后,在我的 Tree 类中,我有以下递归方法。

    public boolean allNodesFull(TreeNode n)
{
boolean allFull = false;
if(!n.isFull())
{
return allFull;
}
for (int i = 0; i < n.getNumChildren(); ++i)
{
allFull = allNodesFull(n.getChild(i));
}
return allFull;
}

最佳答案

还没有测试过,希望您已经准备好测试用例并告诉我们它是否有效;)

public boolean allNodesFull(TreeNode n) {
if(!n.isFull()) {
return false;
}
for (int i = 0; i < n.getNumChildren(); ++i) {
if (!allNodesFull(n.getChild(i))) {
return false;
}
}
return true;
}

关于java - 判断树中的节点是否已满,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13211954/

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