gpt4 book ai didi

java - 如何确定哪个项目位于二叉树中的级别?

转载 作者:行者123 更新时间:2023-12-02 00:08:57 25 4
gpt4 key购买 nike

在这段代码中,我显示了存储在链接列表中的所有文件对象。我以递归方式运行它,这让我可以探索整个二叉树。

我的工作是计算每个 File 对象位于树的哪一层。

如何使用递归来做到这一点?我本来想只计算里面的变量,但是如果级别下降,我不知道在哪里减去该值。

有什么想法吗?

public void display(T node)
{
Node temp = node;

if (temp != null)
{
display(temp.left);
display(temp.right);
}
}

最佳答案

这看起来像是一个家庭作业/学习问题,所以这里有一些提示。

  • 您不需要这样的计数器。
  • 巧妙的解决方案包括使 displayFiles 成为一个简单的非递归函数,它使用递归辅助函数来完成所有工作。当前级别是辅助函数的参数。
<小时/>

好的,这是解决方案的草图:

public void display(T node) {
doDisplay(node, 0);
}

private void doDisplay(T node, int level) {
if (node != null) {
// output this node ... including the level
display(node.left, level + 1);
display(node.right, level + 1);
}
}

请注意,变量没有递增和递减,因此这些方法是完全可重入的。

关于java - 如何确定哪个项目位于二叉树中的级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13262544/

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