递归存储中的二进制搜索树问题

时间:2018-12-08 05:52:41

标签: java recursion binary-search-tree

由于这是一种递归方法,因此我无法弄清楚如何使用这些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”

1 个答案:

答案 0 :(得分:0)

您不需要stg参数。您只需要先连接左侧,然后连接当前元素,再连接右侧:

public static String inOrder(BinaryTreeNode<String> root) {
    if (root == null) {
        return "";
    }

    return inOrder(root.getLeft()) + root.getElement() + inOrder(root.getRight());
}