葉が L でマークされ、葉以外のノードが I でマークされているツリーがあります。ツリーの事前順序トラバーサルが与えられます。例は IIILLILILLIIILLLIILILLL です。この含まれる文字列のハフマン ツリーを構築する必要があります。私は元々、引数に new Root()、0、および自分の treeString を渡します。TreeString は、I と L が上に貼り付けられた文字列になります。何らかの理由で、コードによって StackOverflow 例外がスローされます。makeTree メソッドのコードは次のとおりです。
public static void makeTree (BinaryNodeInterface<Character> root, int start, String treeString)
{
if (treeString.charAt(start)=='L'){
root.setLeftChild(null);
root.setRightChild(null);
return;
}
BinaryNodeInterface<Character> leftSide = new BinaryNode<Character>();
root.setLeftChild(leftSide);
makeTree(root.getLeftChild(), start++, treeString);
BinaryNodeInterface<Character> rightSide = new BinaryNode<Character>();
root.setRightChild(rightSide);
makeTree(root.getRightChild(), start++, treeString);
}
スタックオーバーフロー例外がスローされる原因がわかりません。最初の私のベースケースは戻ってきてそれを処理すると思います。