由于这是一种递归方法,因此我无法弄清楚如何使用这些stg参数存储树元素数据。 我想将stg保留在那里,以便我可以学习如何以递归方法存储该字符串数据。我该怎么做?(基本上我想摆脱temp1)
编辑:我尝试过stg + = root.getElement()+“”;带有返回stg;而且没有用
System.out.println(“树的inOrder遍历:” + inOrder(root,“”)));
静态字符串temp1 =“”;
public static String inOrder(BinaryTreeNode<String> root, String stg) {
if (root != null) {
// recur to left side
inOrder(root.getLeft(), stg);
// print the tree element
temp1 += root.getElement() + " ";
// recur to right side
inOrder(root.getRight(), stg);
}
stg = temp1;
return temp1;
} // inOrder
输出示例“树的inOrder遍历:1 2 3 X Y Z x y z”
答案 0 :(得分:0)
您不需要stg
参数。您只需要先连接左侧,然后连接当前元素,再连接右侧:
public static String inOrder(BinaryTreeNode<String> root) {
if (root == null) {
return "";
}
return inOrder(root.getLeft()) + root.getElement() + inOrder(root.getRight());
}