Java 哈夫曼树字符串表示法

Java 哈夫曼树字符串表示法,java,recursion,tree,huffman-code,Java,Recursion,Tree,Huffman Code,我需要做一个哈夫曼树的字符串表示。 它使用预顺序遍历,输出将生成一个字符串,使用“I”(对于内部节点)和“L”(对于叶节点)后跟叶节点字符 public static String getTreeString(final BinaryNodeInterface<Character> root) { String treeString=""; if(root == null)

我需要做一个哈夫曼树的字符串表示。 它使用预顺序遍历,输出将生成一个字符串,使用“I”(对于内部节点)和“L”(对于叶节点)后跟叶节点字符

public static String getTreeString(final BinaryNodeInterface<Character> root)
{               
            String treeString="";
            if(root == null)
                return "";
            if(root.isLeaf())
                treeString = treeString + "L" + root.getData();
            else
            {
                treeString = treeString + "I";
                getTreeString(root.getLeftChild());
                getTreeString(root.getRightChild());
            }

            return treeString;

}
公共静态字符串gettreString(最终二进制节点接口根)
{               
字符串treeString=“”;
if(root==null)
返回“”;
if(root.isLeaf())
treeString=treeString+“L”+root.getData();
其他的
{
treeString=treeString+“I”;
gettreString(root.getLeftChild());
gettreString(root.getRightChild());
}
返树;
}
当我调试程序时,它会执行并创建正确的字符串,但由于
String treeString=“”,它无法保存

所需输出:
iILailbilcldle

我的输出:
I

此外,我不允许使用任何全局/实例变量或任何Java预定义类。

以下代码:

getTreeString(root.getLeftChild());
getTreeString(root.getRightChild());
应该是

treeString += getTreeString(root.getLeftChild());
treeString += getTreeString(root.getRightChild());

您不需要将结果附加到treeString中。

没问题。^我的回答太糟糕了。