gpt4 book ai didi

java - 这个递归是如何工作的以及如何让它打印出根?

转载 作者:行者123 更新时间:2023-12-01 17:59:11 25 4
gpt4 key购买 nike

所以我实现了 BST

private String toStringHelper(Node node) {


if (node == null) {
return "";
}
if (node.left != null) {
System.out.println(node.left.value);
toStringHelper(node.left);

}

if (node.right != null) {
System.out.println(node.right.value);
toStringHelper(node.right);

}


return "";
}

我想使用递归。问题是它不会打印我的根元素,否则它似乎可以工作(编辑开始)。当插入以下值 100、-12、-13、-1、0、12、10、123、122、124 时。它按以下顺序返回它们:-12-13-101210123122124 显然根本没有订购。(编辑结束)

问题是我不完全确定递归部分是如何工作的,我想对此进行解释,以便我也可以获得在适当位置打印根的方法。

最佳答案

看起来您将开始节点传递给它,然后打印左右子树。您需要打印出作为参数传递给方法的节点处的值,然后在节点的左右子节点上调用该方法

private String toStringHelper(Node node) {

if (node == null) {
return "";
}
//print the value of the current node
System.out.println(node.value);
if (node.left != null) {
//System.out.println(node.left.value);
toStringHelper(node.left);

}

if (node.right != null) {
//System.out.println(node.right.value);
toStringHelper(node.right);

}


return "";
}

编辑:根据 OLE V.V. 的更正,将打印语句移至空检查之后

关于java - 这个递归是如何工作的以及如何让它打印出根?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42303680/

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